通过HttpWebRequest向服务器Post数据的问题 10C

工作上需要通过http协议往服务器post一条json字符串,服务器会返回成功或者故障信息,网络上找了些HttpWebRequest例子,都遇到同一种现象,相同的代码,如果我电脑打开Fiddler 4软件,执行结果能够成功,但我关闭Fiddler 4情况下,返回提示信息是“发送数据不能为空”。
不知道问题的原因,请求帮助,谢谢
贴一段代码,c#
public static string HttpPost(string url, string param)
{
byte[] byteArray = Encoding.UTF8.GetBytes(param);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "POST";
webRequest.ContentType = "text/xml;charset=UTF-8";
webRequest.ContentLength = byteArray.Length;
Stream newStream = webRequest.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
StreamReader php = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string phpend = php.ReadToEnd();
return phpend;
}

3个回答

你不是json么?webRequest.ContentType = "text/xml;charset=UTF-8"; 这里应该是text/json

地址是什么,http还是hittps,fiddler是否设置了代理服务器,关闭fiddler后打开internet设置看看

string param是什么内容,下断点看看。

showbo
支付宝加好友偷能量挖 正解。。
接近 2 年之前 回复

这我没说仔细,抱歉,对方给我了条报文是text/xml这个,只是做为参数传入的是json字串,还有我对网络通讯没怎么接触过,见笑,
fiddler也是今天下的,无意间发现开启行,关闭不行的现象。

给的报文
POST/HTTP/1.1\r\nAccept: /
Host:127.0.0.1:6801
Content-Type:text/xml;charset=utf-8
Content-Length:549
Connection:close
Content-Length: 549

[{"BCJY":"0.00","COUNT":"1","CZLX":"水费","DATA":[{"DSFJE1":"0","DSFJE2":"0","DSFJE3":"0","FJDJ1":"0","FJDJ2":"0","FJDJ3":"0","JTDJ1":"2","JTDJ2":"0","JTDJ3":"0","JTJE1":"20.00","JTJE2":"0","JTJE3":"0","JTSL1":"10","JTSL2":"0","JTSL3":"0","WSDJ":"0","WSJE":"0","WSL":"0","YSLXID":"1","YSLXMC":"居民用水"}],"FBYSL":"10","FKRQ":"2018-08-04 09:37:23","JYDM":"001","LSH":"270915180804093723","NSSBH":"","SCJY":"0.00","SFWD":"270915","SFY":"小明","SFYY":"","SJFK":"1","YHBH":"00002001","YHDZ":"湖南","YHMC":"张三","YHMCZH":"","ZJJE":"20.00"}]

通过测试,目前的问题现象这样:
1)通过postman软件,发送字符串,能够获得成功的结果
2)通过postman直接生成c#的代码,在vs2017里执行,还相同的问题,不开启Fiddler4,返回故障代码(发送数据不能为空),开启Fiddler4能获得成功
代码如下:(
var client = new RestClient("http://xxx.xxx.77.277:xxxx/");
var request = new RestRequest(Method.POST);
request.AddHeader("postman-token", "50e7f6c5-83f2-0d35-0d8e-e1d505c80bdb");
request.AddHeader("cache-control", "no-cache");
request.AddParameter("undefined", "[{\"BCJY\":\"0.00\",\"COUNT\":\"1\",\"CZLX\":\"水费\",\"DATA\":[{\"DSFJE1\":\"0\",\"DSFJE2\":\"0\",\"DSFJE3\":\"0\",\"FJDJ1\":\"0\",\"FJDJ2\":\"0\",\"FJDJ3\":\"0\",\"JTDJ1\":\"2\",\"JTDJ2\":\"0\",\"JTDJ3\":\"0\",\"JTJE1\":\"20.00\",\"JTJE2\":\"0\",\"JTJE3\":\"0\",\"JTSL1\":\"10\",\"JTSL2\":\"0\",\"JTSL3\":\"0\",\"WSDJ\":\"0\",\"WSJE\":\"0\",\"WSL\":\"0\",\"YSLXID\":\"20000\",\"YSLXMC\":\"居民用水\"}],\"FBYSL\":\"10\",\"FKRQ\":\"2018-08-06\",\"JYDM\":\"001\",\"LSH\":\"hnzykjzp00000340\",\"NSSBH\":\"\",\"SCJY\":\"0.00\",\"SFWD\":\"HNZYKJ\",\"SFY\":\"sale\",\"SFYY\":\"\",\"SJFK\":\"1\",\"YHBH\":\"1808070\",\"YHDZ\":\"裕华大厦B-813\",\"YHMC\":\"田田\",\"YHMCZH\":\"\",\"ZJJE\":\"20.00\"}]", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content.ToString());

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c#使用 HttpWebRequest 向服务器post请求,接收返回数据不完整

C# 4.0 ,使用HttpWebRequest向服务器发送post请求,使用HttpWebResponse 接收服务器返回的数据,返回数据有3M左右,但是实际上string只接收到2.2M,数据没有完全接收就结束了。导致接收到的数据不完整无法进行解析。 抓取数据包请求数据包看到数据包内最下方提示:Stream output truncated,求解决

HttpWebRequest向https网址post的时候总是无法连接到远程服务器,怎么办啊

用同一个方法访问http的完全正常。。。 我也加了设置: ``` if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) //https请求 { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); myRequest = WebRequest.Create(url) as HttpWebRequest; myRequest.ProtocolVersion = HttpVersion.Version11; } ... private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; //总是接受 } ``` 每次在Stream newStream = myRequest.GetRequestStream();这句的时候就异常,实在找不到原因了! post连接:https://112.74.109.190/tniol-api/pos/login post数据:user_name=sapi&password=123 哪位大神帮忙看看呀

POST跨域请求并接收数据问题

用JQ的Ajax显然不行~需要POST对方然后接收数据~有什么好办法

c# 向服务器post数据的时候 如何把参数和cookie一起发送

``` System.Net.HttpWebRequest request; request = (System.Net.HttpWebRequest)WebRequest.Create("http:www.xxxx.com"); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded; charset=utf-8"; string paraUrlCoded = System.Web.HttpUtility.UrlEncode(textBox4.Text); paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(textBox3.Text); byte[] payload; payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded); request.ContentLength = payload.Length; Stream writer = null; writer = request.GetRequestStream(); //将请求参数写入流 writer.Write(payload, 0, payload.Length); // 关闭请求流 writer.Close(); System.Net.HttpWebResponse response = null; // 获得响应流 response = (System.Net.HttpWebResponse)request.GetResponse(); System.IO.Stream s; s = response.GetResponseStream(); StreamReader reader = new StreamReader(s); string strValue = reader.ReadToEnd(); //如果返回数据比较大,可以选择循环读取 reader.Close(); ``` 如何发送cookie呢? 下面是火狐浏览器存储的cookie PHPSESSID:"bjcjcq1q630hkmpjj5a65otev2" _csrf:"91e0c51dd25fe28d57dcdb673c2b48a48ae843a820390ab8d8cc3f62ab9982b1a:2:{i:0;s:5:"_csrf";i:1;s:32:"TMuJAI2U_7A0qTdkNOKpTroujAdlL4s9";}"

为什么用post传参到服务器一直为null

![图片说明](https://img-ask.csdn.net/upload/201906/28/1561716848_772707.png) 两个参数是有值的,但是服务器说为null,怎么回事。求大佬解惑

VB.net 通过WebRequest 发送post请求 如何获取http响应

VB.net 通过WebRequest 发送post请求 如何获取http响应

C# 客户端远程访问IIS服务器出现:远程服务器返回错误: (404) 未找到。

C# 客户端远程访问IIS服务器出现:远程服务器返回错误: (404) 未找到。但是服务器端可以访问URL:http://192.168.2.179:8081/webform.aspx,请问这是什么原因? ``` private void upload_Click(object sender, System.EventArgs e) { try { //上传服务器的地址(web服务) string address = "http://192.168.2.179:8081/Default.aspx"; //上传后文件保存的名称 string saveName = DateTime.Now.ToString("yyyyMMddHHmmss"); int count = UpSound_Request(address, filePath, saveName, this.progressBar1); if (count > 0) { MessageBox.Show("上传文件成功!"); } else { MessageBox.Show("上传文件失败!"); } } catch (Exception ex) { MessageBox.Show("" + ex.GetBaseException()); } } /// <summary> /// 上传文件 /// </summary> /// <param name="address">文件上传到服务器的路径</param> /// <param name="fileNamePath">要上传的本地路径(全路径)</param> /// <param name="saveName">文件上传后的名称</param> /// <returns>成功返回1,失败返回2</returns> public int UpSound_Request(string address, string fileNamePath, string saveName, ProgressBar progressBar) { int returnValue = 0; //要上传的文件 FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read); //二进制对象 BinaryReader r = new BinaryReader(fs); //时间戳 string strBoundary = "----------" + DateTime.Now.Ticks.ToString("x"); byte[] boundaryBytes = Encoding.ASCII.GetBytes("\r\n--" + strBoundary + "\r\n"); //请求的头部信息 StringBuilder sb = new StringBuilder(); sb.Append("--"); sb.Append(strBoundary); sb.Append("\r\n"); sb.Append("Content-Disposition: form-data; name=\""); sb.Append("file"); sb.Append("\"; filename=\""); sb.Append(saveName); sb.Append("\";"); sb.Append("\r\n"); sb.Append("Content-Type: "); sb.Append("application/octet-stream"); sb.Append("\r\n"); sb.Append("\r\n"); string strPostHeader = sb.ToString(); byte[] postHeaderBytes = Encoding.UTF8.GetBytes(strPostHeader); // 根据uri创建HttpWebRequest对象 HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(new Uri(address)); httpReq.Method = "POST"; //对发送的数据不使用缓存 httpReq.AllowWriteStreamBuffering = false; //设置获得响应的超时时间(300秒) httpReq.Timeout = 300000; httpReq.ContentType = "multipart/form-data; boundary=" + strBoundary; long length = fs.Length + postHeaderBytes.Length + boundaryBytes.Length; long fileLength = fs.Length; httpReq.ContentLength = length; try { progressBar.Maximum = int.MaxValue; progressBar.Minimum = 0; progressBar.Value = 0; //每次上传4k int bufferLength = 4096; byte[] buffer = new byte[bufferLength]; //已上传的字节数 long offset = 0; //开始上传时间 DateTime startTime = DateTime.Now; int size = r.Read(buffer, 0, bufferLength); Stream postStream = httpReq.GetRequestStream(); //发送请求头部消息 postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length); while (size > 0) { postStream.Write(buffer, 0, size); offset += size; progressBar.Value = (int)(offset * (int.MaxValue / length)); TimeSpan span = DateTime.Now - startTime; double second = span.TotalSeconds; labTime.Text = "已用时:" + second.ToString("F2") + "秒"; if (second > 0.001) { labSpeed.Text = "平均速度:" + (offset / 1024 / second).ToString("0.00") + "KB/秒"; } else { labSpeed.Text = " 正在连接…"; } labState.Text = "已上传:" + (offset * 100.0 / length).ToString("F2") + "%"; labSize.Text = (offset / 1048576.0).ToString("F2") + "M/" + (fileLength / 1048576.0).ToString("F2") + "M"; Application.DoEvents(); size = r.Read(buffer, 0, bufferLength); } //添加尾部的时间戳 postStream.Write(boundaryBytes, 0, boundaryBytes.Length); postStream.Close(); //获取服务器端的响应 //WebResponse webRespon = httpReq.GetResponse(); WebResponse webRespon; try { webRespon = httpReq.GetResponse() as WebResponse; } catch (WebException ex) { webRespon = ex.Response as WebResponse; } Stream s = webRespon.GetResponseStream(); //读取服务器端返回的消息 StreamReader sr = new StreamReader(s); String sReturnString = sr.ReadLine(); s.Close(); sr.Close(); if (sReturnString == "Success") { returnValue = 1; } else if (sReturnString == "Error") { returnValue = 0; } } catch { returnValue = 0; } finally { fs.Close(); r.Close(); } return returnValue; } } ![图片说明](https://img-ask.csdn.net/upload/201908/24/1566628122_433652.png) ```

c# winform向一般处理程序(ashx) Post数据的时候 对特殊字符编码的问题

winfrom POST代码 url=http://192.168.1.101:8089/Handle/B.ashx pdata="a=ert45/sd2=&babc=/&c=123=/" ``` public static string PostHttpHandle(string url, string pdata) { Dictionary<string, string> dd = new Dictionary<string, string>(); dd.Add(url, pdata); string udata = string.Empty; foreach (KeyValuePair<string, string> kvp in dd) { System.Net.HttpWebRequest request2; request2 = (System.Net.HttpWebRequest)WebRequest.Create(kvp.Key); request2.Method = "POST"; request2.ContentType = "application/x-www-form-urlencoded;"; byte[] payload; payload = System.Text.Encoding.UTF8.GetBytes(kvp.Value); request2.ContentLength = payload.Length; Stream writer = request2.GetRequestStream(); writer.Write(payload, 0, payload.Length); writer.Close(); System.Net.HttpWebResponse response; response = (System.Net.HttpWebResponse)request2.GetResponse(); System.IO.Stream s; s = response.GetResponseStream(); StreamReader reader = new StreamReader(s); udata = reader.ReadToEnd(); reader.Close(); } return HttpUtility.UrlEncode(udata, System.Text.Encoding.UTF8); } ``` ashx 接收的代码 ## //输出会把=号变成%3D /变成%3f ``` public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string token = string.Format(HttpUtility.UrlDecode( context.Request.Form["a"]),System.Text.Encoding.UTF8); string jqm = string.Format(HttpUtility.UrlDecode( context.Request.Form["b"]),System.Text.Encoding.UTF8); string my = string.Format(HttpUtility.UrlDecode( context.Request.Form["c"]),System.Text.Encoding.UTF8); context.Response.Write(my) } ``` 我想我发送过去的= 和 / 符号 服务器端接收就是=号和/符号 不要编码 另外服务端返回的 = 和 / 符号 我能也能接收到 向服务器POST加密的数据就一定会用到=和/ 这些特殊符号

远程服务器返回错误(405),不允许的方法。

使用c#后台代码,发送get请求想要获取json. 服务是java项目,使用tomcat发布的。 ``` string serviceAddress = requestUrl; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); request.Method = "get"; request.ContentType = "text/html;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); return retString; ```

C#多线程处理实现post并发请求

需求是这样:如从文件中读取了10条数据,将数据参数循环给post请求,然后分别记录每个请求所用时间,最后记录平均请求时间,希望能从原有代码上使用多线程处理。请求和响应。 原有代码: //读取excel ds = Extensions.FilesIO.ExcelRead(file_path, "sheet1"); for (int i = 0; i < 5; i++) { id = ds.Tables[0].Rows[i][0].ToString().Trim(); name = ds.Tables[0].Rows[i][1].ToString().Trim(); //请求参数 var par = new Dictionary<string, string>(); par.Add("name", name); par.Add("id", id); //测试demo result = Extensions.Http_Conn.SendPost(url, par, "get"); 记录当前请求时间 } 记录平均时间

远程服务器返回错误: (403) 已禁止。

假如,我需要获取五条数据 但是 每次请求接口都只会给一条 这里我用了for循环 但是在第二次访问的时候就会报 【远程服务器返回错误: (403) 已禁止。 】 于是我在方法前加了 延迟执行 ,获取数量少的话还好 ,但是如果我获取的数量 多的话,每次都延迟几秒钟,加起来就比较长时间了 ,效果不理想 , 有没有其他的解决方案。

asp.net接收post数据报错:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

我用asp.net写了一个接入其它网站登录api的网页,放到我的服务器上成功了,但放到学校的服务器上接收post过来的token的时候报了下面的错误: Server Error in '/classMeeting' Application. 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 112.65.235.59:443 Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 112.65.235.59:443 Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [SocketException (0x274c): 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 112.65.235.59:443] System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +309 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) +633 [WebException: Unable to connect to the remote server] System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) +708 System.Net.HttpWebRequest.GetRequestStream() +21 classMeeting.index.GetAccess_token(String code, String client_id, String redirect_uri, String client_secret) in C:\Users\admin\source\repos\classMeeting\index.aspx.cs:130 classMeeting.index.readyLogin() in C:\Users\admin\source\repos\classMeeting\index.aspx.cs:32 classMeeting.index.Page_Load(Object sender, EventArgs e) in C:\Users\admin\source\repos\classMeeting\index.aspx.cs:25 System.Web.UI.Control.OnLoad(EventArgs e) +109 System.Web.UI.Control.LoadRecursive() +68 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3321 我的源码是: ``` public static string GetAccess_token(string code, string client_id, string redirect_uri, string client_secret) { var url = "https://openapi.yiban.cn/oauth/access_token"; byte[] byteArray = Encoding.UTF8.GetBytes(string.Format("client_id={0}&client_secret={1}&code={2}&redirect_uri={3}", client_id, client_secret, code, redirect_uri)); HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url)); webRequest.Method = "Post"; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = byteArray.Length; ServicePointManager.DefaultConnectionLimit = 50; Stream newStream = webRequest.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length); newStream.Close(); HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); StreamReader php = new StreamReader(response.GetResponseStream(), Encoding.Default); return php.ReadToEnd(); } ``` 应该怎么解决呢,求大佬

c# 用winform程序实现HTTP中post请求

现在在做一个需求,要求用HTTP post方式调用接口实现数据上传,需求内容如下:协议:http方式:POST POST字符串参数为code={0}&keys={1}&writedoc={2} {0},{1},{2}分别对应参数code,keys,writedoc的值。 代码如下: string PostData = string.Format("code={0}&keys={1}&writedoc={2}", "10001", "d587fc05fe8c47b7", xmldoc); Uri url = new Uri(surl); WebRequest myHttpWebRequest = WebRequest.Create(url); myHttpWebRequest.Method = "POST"; myHttpWebRequest.Timeout = 3000; UTF8Encoding encoding = new UTF8Encoding(); byte[] byte1 = encoding.GetBytes(PostData); //myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"; myHttpWebRequest.ContentLength = byte1.Length; //发送成功后接收返回的XML信息 using (Stream newStream = myHttpWebRequest.GetRequestStream()) { newStream.Write(byte1, 0, byte1.Length); HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.GetResponse(); string lcHtml = string.Empty; Encoding enc = Encoding.GetEncoding("UTF-8"); using(Stream stream = response.GetResponseStream()) { StreamReader streamReader = new StreamReader(stream, enc); lcHtml = streamReader.ReadToEnd(); return lcHtml; } } 可是在响应完成之后,服务器那边接收不到我窜过去的参数,各位大神看看我哪里写的不对

winCE 通过http协议访问 web服务器(C++)

小弟我弄了好久,想在winCE 操作系统上用C++语言实现通过HTTP 协议访问服务器。问度娘也没弄清,希望大神们可以帮帮小弟,给小弟我一个C++的demo!万分感谢!!

宽带网络下Http请求会无响应或者反应很慢

最近写个程序,在不通过路由,直连宽带情况下,HTTP GET请求会抛出异常,提示远程服务器无响应,POST上传流数据可以请求到,但是第一次很慢,请求过一次就快了,GET请求也好了,实在是诡异。服务器为Tomcat9,客户端请求代码如下 ``` HttpWebRequest req = (HttpWebRequest)WebRequest.Create(host+"/Yiyun/Api?method=getProxyIp"); string result = ""; try { //请求头 req.Accept = "text/html, application/xhtml+xml, */*"; req.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko"; req.ContentType = "multipart/form-data"; req.Connection = "KeepAlive"; req.Timeout = 10000; req.Method = "POST"; HttpWebResponse wr = (HttpWebResponse)req.GetResponse(); StreamReader sr = new StreamReader(wr.GetResponseStream()); result = sr.ReadToEnd(); sr.Close(); wr.Close(); ipList.AddRange(result.Split(',')); } catch (Exception e) { } ```

由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 ***.***.***.*** :7000 在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) --- 内部异常堆栈跟踪的结尾 --- 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) 在 System.Net.HttpWebRequest.GetRequestStream() 在 *******.Https.sendPost() 位置 行号 160 我在用C#的控制台程序发数据至远程服务器,大概一个小时会出现一次这个异常。 求大神指导。

c#模拟登陆 返回500错误

我想用c#模拟登陆一个网站,然后再对网站进行操作,post参数也很简单,但是为什么返回500错误呢? ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414065_362884.jpg) ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414075_702532.png) ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414082_979129.jpg) ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414093_528164.png) ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414100_67423.png) ``` using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading; namespace emulateLoginBaidu { class HTMLHelper { public static CookieContainer GetCooKie(string loginUrl, string postdata, HttpHeader header) { HttpWebRequest request = null; HttpWebResponse response = null; try { CookieContainer cc = new CookieContainer(); request = (HttpWebRequest)WebRequest.Create(loginUrl); request.Method = header.method; request.ContentType = header.contentType; byte[] postdatabyte = Encoding.UTF8.GetBytes(postdata); request.ContentLength = postdatabyte.Length; request.AllowAutoRedirect = false; request.CookieContainer = cc; request.KeepAlive = true; //提交请求 Stream stream; stream = request.GetRequestStream(); stream.Write(postdatabyte, 0, postdatabyte.Length); stream.Close(); //接收响应 response = (HttpWebResponse)request.GetResponse(); response.Cookies = request.CookieContainer.GetCookies(request.RequestUri); CookieCollection cook = response.Cookies; //Cookie字符串格式 string strcrook = request.CookieContainer.GetCookieHeader(request.RequestUri); return cc; } catch (Exception ex) { throw ex; } } /// <summary> /// 获取html /// </summary> /// <param name="getUrl"></param> /// <param name="cookieContainer"></param> /// <param name="header"></param> /// <returns></returns> public static string GetHtml(string getUrl, CookieContainer cookieContainer, HttpHeader header) { Thread.Sleep(1000); HttpWebRequest httpWebRequest = null; HttpWebResponse httpWebResponse = null; try { httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(getUrl); httpWebRequest.CookieContainer = cookieContainer; httpWebRequest.ContentType = header.contentType; httpWebRequest.ServicePoint.ConnectionLimit = header.maxTry; httpWebRequest.Referer = getUrl; httpWebRequest.Accept = header.accept; httpWebRequest.UserAgent = header.userAgent; httpWebRequest.Method = "GET"; httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); Stream responseStream = httpWebResponse.GetResponseStream(); StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8); string html = streamReader.ReadToEnd(); streamReader.Close(); responseStream.Close(); httpWebRequest.Abort(); httpWebResponse.Close(); return html; } catch (Exception e) { if (httpWebRequest != null) httpWebRequest.Abort(); if (httpWebResponse != null) httpWebResponse.Close(); return string.Empty; } } } public class HttpHeader { public string contentType { get; set; } public string accept { get; set; } public string userAgent { get; set; } public string method { get; set; } public int maxTry { get; set; } } } ``` 测试代码: ``` try { HttpHeader header = new HttpHeader(); header.accept = @"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; header.contentType = "application/x-www-form-urlencoded"; header.method = "POST"; header.userAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0"; header.maxTry = 300; CookieContainer cookieContainer = new CookieContainer(); cookieContainer = HTMLHelper.GetCooKie("https://www.wish.com/api/email-login", "email=oxvbgzo66627404%40163.com&password=ai49425&_buckets=&_experiments=", header); string html = HTMLHelper.GetHtml("https://www.wish.com", cookieContainer, header); MessageBox.Show(html); } catch (Exception ee) { MessageBox.Show(ee.Message); } ```

实现天气,报错远程服务器返回错误: (500) 内部服务器错误。

/// <summary> /// CityName为用户当前要查寻的城市名称 /// 本方法返回一个数据组 /// CityPhoto.ImageUrl = "http://www.cma.gov.cn/tqyb/img/city/" + list[3]; //这里的list[3]是城市的图片 /// lsit[0] 所属省 /// list[1] 城市 /// list[2] 城市编号 /// list[3] 图片 /// list[4] 为天气预报时间 /// list[5] 当天天气情况 /// list[6] 温度 /// list[7] 风力情况 /// list[10] 今日实况 /// list[8] 当天天气图片 // list[9] 当天天气图片 // list[15] 第二天天气图片 (名称) // list[16] 第二天天气图片 // list[20] 第三天天气图片 // list[21] 第三天天气图片 // list[11] 温馨提示 /// list[12] 第二天天气情况 /// list[13] 第二天温度 /// list[14] 风力情况 /// list[17] 第三天天气情况 /// list[18] 第三温度 /// list[19] 风力情况 /// list[22] 为城市信息 /// list[23] 返回作者 /// 本DLL文件来源于河软CSDN_net 3 :979170768 /// CSDN博客: http://write.blog.csdn.net/postlist /// </summary> /// <param name="CityName"></param> /// <returns></returns> public static ArrayList Get_3day_weather(string CityName) { XmlTextReader xt = new XmlTextReader("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=宜昌" +CityName); int i = 0; ArrayList list = new ArrayList(); while (xt.Read()) { if (xt.NodeType == XmlNodeType.Text) { list.Add(xt.Value); } } xt.Close(); list.Add("本DLL文件来源于河软CSDN_net 3 :979170768+++CSDN博客: http://write.blog.csdn.net/postlist"); return list; 这个报错 [WebException: 远程服务器返回错误: (500) 内部服务器错误。] System.Net.HttpWebRequest.GetResponse() +6542104 System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) +101 System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) +5655461 System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) +69 System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver) +54 System.Threading.CompressedStack.runTryCode(Object userData) +70 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) +0 System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state) +92 System.Xml.XmlTextReaderImpl.OpenUrl() +132 System.Xml.XmlTextReaderImpl.Read() +308 System.Xml.XmlTextReader.Read() +13 weather.Bnn_Weather.Get_3day_weather(String CityName) in d:\专业操作信息库\WPF\weather\weather\Bnn_Weather.cs:51 weather.WeatherWeb.disp_weather(String city) in d:\专业操作信息库\WPF\weather\weather\WeatherWeb.aspx.cs:52 weather.WeatherWeb.Button1_Click(Object sender, EventArgs e) in d:\专业操作信息库\WPF\weather\weather\WeatherWeb.aspx.cs:60 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628722 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

WCF 本地localhost 上传图文和文件没有问题,发布到服务器后,WCF方法能调用,但是无法实现

``` public static string UploadFile(string url, string path) { HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; CookieContainer cookieContainer = new CookieContainer(); request.CookieContainer = cookieContainer; request.AllowAutoRedirect = true; request.Method = "POST"; string boundary = DateTime.Now.Ticks.ToString("X"); request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary; byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n"); byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n"); int pos = path.LastIndexOf("\\"); string fileName = path.Substring(pos + 1); //请求头部信息 StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"file\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileName)); byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString()); //文化流 读取图片信息 FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); byte[] bArr = new byte[fs.Length]; fs.Read(bArr, 0, bArr.Length); fs.Close(); Stream postStream = request.GetRequestStream(); postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length); postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length); postStream.Write(bArr, 0, bArr.Length); postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length); postStream.Close(); //发送请求并获取相应回应数据 HttpWebResponse response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 Stream instream = response.GetResponseStream(); StreamReader sr = new StreamReader(instream, Encoding.UTF8); //返回结果网页(html)代码 string content = sr.ReadToEnd(); return content; } ``` ![图片说明](https://img-ask.csdn.net/upload/202005/13/1589349846_385466.png) 这个可以调用,但是无法实现--发布在IIS 上 ![图片说明](https://img-ask.csdn.net/upload/202005/13/1589349883_830777.png) 这个可以实现 --localhost 上

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

6年开发经验女程序员,面试京东Java岗要求薪资28K

写在开头: 上周面试了一位女程序员,上午10::30来我们部门面试,2B哥接待了她.来看看她的简历: 个人简历 个人技能: ● 熟悉spring mvc 、spring、mybatis 等框架 ● 熟悉 redis 、rocketmq、dubbo、zookeeper、netty 、nginx、tomcat、mysql。 ● 阅读过juc 中的线程池、锁的源...

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

SpringBoot系列之Redis缓存使用详细教程

Spring的缓存抽象 Spring从3.1开始定义了一系列抽象接口来统一不同的缓存技术;并支持使用Java Caching(JSR-107)注解简化我们进行缓存开发。Spring Cache 只负责维护抽象层,具体的实现由你的技术选型来决定。将缓存处理和缓存技术解除耦合。 JSR107 Java Caching(JSR-107)定义了5个核心接口,分别是CachingProvider, Cach...

推荐9个能让你看一天的网站

分享的这9个保证另你意外的网站,每个都非常实用!非常干货!毫不客气的说,这些网站最少值10万块钱。 利用好这些网站,会让你各方面的技能都得到成长,不说让你走上人生巅峰,但对比现在的你,在眼界、学识、技能方面都有质的飞跃。 一、AIRPANO 传送门:https://www.airpano.com/360photo_list.php 这是一个可以躺在家里,就能环游世界的神奇网站。 世界那么大,绝大多...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

月薪22K程序员,打卡迟到10次,收到工资短信一脸懵逼

每家公司为了保证公司员工每天的工作时间,一般都会采用上下班打卡的工作制度,这其实是一个很常见的是,本身也没有什么问题的。正所谓无规矩不成方圆,公司肯定是有公司的规矩,虽然每个员工都很不喜欢这些规矩来束缚我们,但是公司也只是为了能更好的管理员工。但是一家公司如果一成不变的使用打卡制度,而不会去变通管理,也真不一定是好事。 打卡制度特别对于销售部门来说,不但会让公司发展不起来,还很容易丢失员工。但如...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

​能让德国人放弃现金支付​,也没谁了

在新冠疫情中,德国人越来越多地选择在超市,加油站或其他商店付款时使用非接触式付款方式。德国信贷协会Deutschen Kreditwirtschaft (DK) 的一位发言人告诉德国新...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

原来实现钉钉自动签到如此简单,每天准时上下班不是梦

本文主要介绍了如何利用现成软件快速实现钉钉自动签到功能,核心思路非常简单,甚至无任何编程基础的小白也能轻松实现定时自动打卡功能.

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

讲真,这两款idea插件,能治愈你英语不好的病

时不时就有小伙伴问我,“二哥,能推荐一款 IDE 吗?”你看这话问的,现在搞 Java 的不都在用 Intellij IDEA 吗,还用得着推荐(我已经和 Eclipse 分手了)。然后小伙伴又说,“二哥,IDEA 支持中文吗?我英语不太好。”你看这话问的,搞编程的,英语不好是硬伤啊! 不过,随着 IDEA 最新版(版本号是 2020.1)的发布,英语不好的病可以彻底治愈了。为什么这么说呢?因为 ...

面试官给我挖坑:a[i][j] 和 a[j][i] 有什么区别?

点击上方“朱小厮的博客”,选择“设为星标”后台回复&#34;1024&#34;领取公众号专属资料本文以一个简单的程序开头——数组赋值:int LEN = 10000; int[][] ...

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问