c# httpWebRequest post提交数据

我想使用httpWebRequest 的post方法提交用户名和密码,结果返回response的是未提交前的html,这个怎么破啊

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C# HttpWebRequest delete请求
请问在请求或发送JSON数据的时候,有什么方法使用DELETE请求?MSDN上说HttpWebRequest只有GET和POST两种方法啊,但是我用DELETE方法成功了,但是第二次使用后,再使用GET请求就断开连接了,求大神解惑。
C# https post 返回202
httpwebrequest c# 怎么才能够等待返回200 做的智联的模拟登陆 现在就返回202
C# HttpWebRequest ,Post请求,有个cookie里面带了逗号
创建CookieContainer的时候 有个cookie里面带了逗号 cookie 类似Wed, 20 Dec 2017 05:46:34 GMT 这种日期的 我用get的访问别的接口是没问题的 这个接口必须post,然后一直提示会话过期
c# HttpWebRequest 为什么会给URL自动加?号
``` public String getHtml(String url, String data, String htmlEncode) { try { //设置模拟http访问参数 Uri uri = new Uri(url); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.UserAgent = "Mozilla/5.0"; request.Accept = "*/*"; request.Method = "POST"; request.Timeout = 40000; request.KeepAlive = true; request.AllowAutoRedirect = true; request.ContentType = "application/x-www-form-urlencoded"; if (!"".Equals(this.txt_cookie.Text)) { request.Headers.Add("Cookie", this.txt_cookie.Text); } Byte[] b = Encoding.ASCII.GetBytes(data); request.ContentLength = b.Length; Stream stream = request.GetRequestStream(); stream.Write(b, 0, b.Length); stream.Close(); StreamReader sr = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.GetEncoding(htmlEncode)); String html = sr.ReadToEnd().Replace("\n","\r\n"); return html; } catch (Exception e) { loginfo(e.Message); //MessageBox.Show(e.Message); } return ""; } public void getInfo() { loginfo("正在获取Web信息,请稍等片刻........"); String exp = "/admin"; if (this.radb_s19.Checked) { exp = "debug=command&expression=%23res%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),%23res.setCharacterEncoding(%22UTF-8%22),%23req%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletRequest'),%23res.getWriter().print(%22dir:%22),%23res.getWriter().println(%23req.getSession().getServletContext().getRealPath(%22/%22)),%23res.getWriter().flush(),%23res.getWriter().close()"; } String html = getHtml(this.txt_url.Text, exp, "UTF-8"); this.txt_info.Text = html; ``` 如果txt_url.Text为http://www.1.com/ String exp的内容问 /admin 程序会访问的地址则是http://www.1.com/?admin 我想知道这个?号是哪里来的。。。 能不能取消掉。。0 0。。 嘿嘿
c#使用 HttpWebRequest 向服务器post请求,接收返回数据不完整
C# 4.0 ,使用HttpWebRequest向服务器发送post请求,使用HttpWebResponse 接收服务器返回的数据,返回数据有3M左右,但是实际上string只接收到2.2M,数据没有完全接收就结束了。导致接收到的数据不完整无法进行解析。 抓取数据包请求数据包看到数据包内最下方提示:Stream output truncated,求解决
C# 模拟post登陆后,关键cookie发送不出去,求帮助
想做一个登陆小米网站的程序,在使用post模拟登陆的时候,能够获取到登陆后的cookie,cookieContainer里面有3个域名。(.xiaomi.com)(account.xiaomi.com)(.account.xiaomi.com) 在.account.xiaomi.com中存在着关键的cookie,pwdToken和passToken都有存在着。但是使用这个cookieContainer,然后httpWebRequest的时候,用get方法获取https://account.xiaomi.com/pass/userInfo?userId=73896043 的时候,我用fiddler发现他只发送了account.xiaomi.com域名中的cookie,而没有发送.account.xiaomi.com中的cookie。导致进页面被认为没登陆,一直返回登陆页面。第一次做winform的程序,被这个问题困扰了好多天了,一直没能解决。 使用ie登陆的话,用httpwatch能看到他发送了.account.xiaomi.com中的cookie,为什么使用程序get的时候他就不发送.account.xiaomi.com中的cookie了。甚为纠结。。。 希望各位大大指点迷津。。。让我不要再纠结了。。。 private HttpWebResponse loginResponse; private StreamReader loginRespReader; private CookieContainer m_Cookie = new CookieContainer(); private void button1_Click(object sender, EventArgs e) { this.xiaomiLogin(); string str=this.loginRespReader.ReadToEnd(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://account.xiaomi.com/pass/userInfo?userId=174314059"); req.CookieContainer = new CookieContainer(); req.CookieContainer = m_Cookie; req.Method = "GET"; //req.ContentType = "application/x-www-form-urlencoded"; loginResponse = (HttpWebResponse)req.GetResponse(); loginRespReader = new StreamReader(loginResponse.GetResponseStream()); textBox1.Text = loginRespReader.ReadToEnd(); } private void xiaomiLogin() { string requestUriString = "https://account.xiaomi.com/pass/serviceLoginAuth2"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUriString); request.CookieContainer = new CookieContainer(); request.CookieContainer = m_Cookie; request.Method = "POST"; request.AllowAutoRedirect = true; request.ContentType = "application/x-www-form-urlencoded"; string s = this.quoteParas(paras); byte[] bytes = Encoding.UTF8.GetBytes("passToken=&user=13763114744&pwd=xiaomi123&callback=https%3A%2F%2Faccount.xiaomi.com&sid=passport&qs=%253Fsid%253Dpassport&hidden=&_sign=KKkRvCpZoDC%2BgLdeyOsdMhwV0Xg%3D"); request.ContentLength = bytes.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(bytes, 0, bytes.Length); this.loginResponse = (HttpWebResponse)request.GetResponse(); m_Cookie = request.CookieContainer; this.loginRespReader = new StreamReader(this.loginResponse.GetResponseStream()); }
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";}"
c# winfrom post请求网址带多个参数的问题 请看下面代码
``` string strURL = "http://www.cqjg.gov.cn/newwww/c7/clwz.asp"; System.Net.HttpWebRequest request; request = (System.Net.HttpWebRequest)WebRequest.Create(strURL); //Post请求方式 request.Method = "POST"; //内容类型 request.ContentType = "application/x-www-form-urlencoded"; //参数经过URL编码 string paraUrlCoded = System.Web.HttpUtility.UrlEncode("Name"); paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(txtCarId .Text.Trim()); paraUrlCoded +="& "+ System.Web.HttpUtility.UrlEncode("Age"); paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(txtCarNumber.Text.Trim()); byte[] payload; //将URL编码后的字符串转化为字节 payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded); //设置请求的ContentLength request.ContentLength = payload.Length; //获得请求流 Stream writer = request.GetRequestStream(); //将请求参数写入流 writer.Write(payload, 0, payload.Length); //关闭请求流 writer.Close(); System.Net.HttpWebResponse response; //获得响应流 response = (System.Net.HttpWebResponse)request.GetResponse(); System.IO.Stream s; s = response.GetResponseStream(); string StrDate = ""; string strValue = ""; StreamReader Reader = new StreamReader(s,Encoding.Default); while ((StrDate= Reader.ReadLine())!=null) { strValue += StrDate+"\r\n"; } // txtInfo.Text = strValue; txtInfo.Text= FindContent(strValue); ``` 如果浏览器请求的 正文是 Name=小明那么 string paraUrlCoded = System.Web.HttpUtility.UrlEncode("Name"); paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(txtCarId .Text.Trim()); 就能成功 如果是Name=小明&type=1 string paraUrlCoded = System.Web.HttpUtility.UrlEncode("Name"); paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(txtCarId .Text.Trim()); paraUrlCoded +="& "+ System.Web.HttpUtility.UrlEncode("type"); paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(1); 这样就会失败提交不成功 还有问下如果请求主题是{"Item":{"Name":"小明"}}这样子或者是{"Name":"test"}这样子的话我该怎么传呢? 麻烦请教下了
将C#程序转化成java程序
//创建请求对象 HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(PostUrl); if (httpWebRequest == null) { return ""; } #region 填充httpWebRequest的基本信息 httpWebRequest.ContentType = contentType; httpWebRequest.Method = "Post"; #endregion httpWebRequest.ContentLength = data.Length; try { Stream RequestStream = httpWebRequest.GetRequestStream(); RequestStream.Write(data, 0, data.Length); RequestStream.Close(); #region 接收返回数据 Stream ResponseStream; string stringResponse = string.Empty; ResponseStream = httpWebRequest.GetResponse().GetResponseStream(); using (StreamReader sr = new StreamReader(ResponseStream, RequstEncod)) { stringResponse = sr.ReadToEnd(); } ResponseStream.Close(); return stringResponse; #endregion } catch (Exception ex) { return ex.Message; } }
C# HttpWebResponse如何获取response body的HEX格式的数据?
``` public static string Post(string url, string content) { string result = ""; #region 添加Post 参数 byte[] data = Encoding.UTF8.GetBytes(content); try { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; req.KeepAlive = false; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = data.Length; Stream reqStream = req.GetRequestStream(); reqStream.Write(data, 0, data.Length); reqStream.Close(); #endregion HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); Stream stream = resp.GetResponseStream(); //获取响应内容 using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) { result = reader.ReadToEnd(); req.Abort(); } return result; } return ""; } ``` 请问这个代码如何修改得到HEX数据?
通过HttpWebRequest向服务器Post数据的问题
工作上需要通过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; }
c# .net 4.0 HttpWebRequest 访问https TLS1.2
用vs2010开发的web应用,部署在 IIS6.0 下,代码中用HttpWebRequest访问https TLS1.2网站,报protocolerror错误。 代码如下: C# code ... url="https://login.taobao.com/member/login.jhtml"; ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072; request = WebRequest.Create(url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.UserAgent = "Mozilla/5.0+(Windows+NT+5.1)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36"; request.GetResponse() as HttpWebResponse ... private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; //总是接受 } url="https://www.baidu.com" 或者 url="https://www.icbc.com.cn" 不会报错。 同样的代码升级到 vs2012,IIs8.0,.net4.5 还是报同样的错误。
C#https的post请求,发送的uri接收方接收的地址乱了
public string HttpPost(string Url, string postDataStr) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); //request.AllowAutoRedirect = false; //禁止自动重定向 request.Method = "POST"; request.Headers.Add("AK", "c74f6e81f3854e928a4e2633b9d55a89"); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = Encoding.UTF8.GetByteCount(Url); request.CookieContainer = cookie; //cookie信息由CookieContainer自行维护 Stream myRequestStream = request.GetRequestStream(); using (StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312")))//gb2312 { myStreamWriter.Write(Url); myStreamWriter.Close(); } HttpWebResponse response = null; try { this.SetCertificatePolicy(); response = (HttpWebResponse)request.GetResponse(); } catch (System.Exception ex) { throw; } //获取重定向地址 //string url1 = response.Headers["Location"]; if (response != null) { Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); //MessageBox.Show(retString); myStreamReader.Close(); myResponseStream.Close(); return retString; } else { return "error"; //post请求返回为空 } } ``` 我发的:https://console-api-test.qibeitech.com/sign/productCheck/bindDevice?lockId=86812017491050&bikeId=http://ofo.so/plate/11000000&timestamp=1504487889209&sign=3c02b0dd1c2b5ba9df236b78e89c5916 他们接收的:AKc74f6e81f3854e928a4e2633b9d55a89bikeIdhttp://ofo.so/plate/11000000http://ofo.so/plate/11000000https://console-api-test.qibeitech.com/sign/productCheck/bindDevice?lockId86812017491050lockId86812017491050timestamp15044878892091504487889209dcc59608864511e79673163ea306a3 ``` 求帮助,小白一个,,之前没怎么做过网络通信的
C# 源代码是POST请求返回字符串流。由于现在返回的是一个网页平台,如何调整。请大神帮忙修改一下
public static String CreatePostHttpResponse(string url, IDictionary<string, string> parameters, Encoding charset) { HttpWebRequest request = null; //HTTPSQ请求 ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); request = WebRequest.Create(url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.UserAgent = DefaultUserAgent; //如果需要POST数据 if (!(parameters == null || parameters.Count == 0)) { StringBuilder buffer = new StringBuilder(); int i = 0; foreach (string key in parameters.Keys) { if (i > 0) { buffer.AppendFormat("&{0}={1}", key, parameters[key]); } else { buffer.AppendFormat("{0}={1}", key, parameters[key]); } i++; } byte[] data = charset.GetBytes(buffer.ToString()); using (Stream stream = request.GetRequestStream()) { stream.Write(data, 0, data.Length); } } Stream outstream = request.GetResponse().GetResponseStream(); //获取响应的字符串流 StreamReader sr = new StreamReader(outstream); //创建一个stream读取流 return sr.ReadToEnd();
c# jsonpost 数组 不成功
本人要post json 数据,数据里出现数组memberList时post返回"Unknown property 'memberList'"错误 ,去掉memberList数组post成功,不明白?? string temp2 = "{\"memberList\":[{\"userId\":\"\",\"userName\":\"吴\",\"userPhone\":\"1382562699\"}],\"distCode\":\"44120100003\",\"beginTime\":\"2015-10-10 08:00:00\",\"script\":\"12语音\",\"endTime\":\"2015-10-10 18:00:00\",\"activityName\":\"任务名称\"}"; string strUrl = @"http://10.150.29.234:9080/ocmx2/activity/taskDetail.action"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUrl); request.Method = "POST"; request.ContentType = "application/json;charset=GBK"; byte[] payload=System.Text.Encoding.GetEncoding("GBK").GetBytes(temp2); //将Json字符串转化为字节 //设置请求的ContentLength request.ContentLength =payload.Length; //发送请求,获得请求流 System.IO.Stream writer; try { writer = request.GetRequestStream();//获取用于写入请求数据的Stream对象 } catch (Exception) { writer = null; } //将请求参数写入流 writer.Write(payload, 0, payload.Length); writer.Close();//关闭请求流 // String strValue = "";//strValue为http响应所返回的字符流 HttpWebResponse response=null; try { //获得响应流 response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { // response = ex.Response; } string StrDate = ""; string strValue = ""; System.IO.Stream s =response.GetResponseStream(); System.IO.StreamReader Reader = new System.IO.StreamReader(s, Encoding.GetEncoding("GBK")); while ((StrDate = Reader.ReadLine()) != null) { strValue += StrDate + "\r\n"; } textBox2.Text = strValue; s.Close();
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); } ```
发送时发生错误,上面一段是人家接口PHP的示例代码,下面是做成C#的,我执行下面的C#时提示基础连接已经关闭,请问是哪里不对?
```<?php define('APPID', '<ID>'); define('SECRET', '<PW>'); define('CALLBACK_URL', '<CALLBACKURL>'); define('TOKEN_URL', '***'); $header = [ 'Content-Type: application/x-www-form-urlencoded', 'Authorization: Basic ' . base64_encode(APPID . ':' . SECRET), ]; $param = array( 'code' => <code>, 'grant_type' => 'authorization_code', 'redirect_uri' => CALLBACK_URL, ); $ch = curl_init(TOKEN_URL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param)); $response = curl_exec($ch); curl_close($ch); $token = json_decode($response, true); var_dump($token); ?> //我这样提示基础连接已经关闭,发送时发生错误         const string APPID = "***"; const string SECRET = "***"; const string CALLBACK_URL = "***"; const string TOKEN_URL = "***"; string jsonParam = "code=***&grant_type=authorization_code&redirect_uri=" + CALLBACK_URL; byte[] data = Encoding.UTF8.GetBytes(jsonParam); string base64Credentials = Convert.ToBase64String(Encoding.UTF8.GetBytes(APPID + ":" + SECRET)); HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(TOKEN_URL); hwr.ContentType = "application/x-www-form-urlencoded"; hwr.Headers.Add("Authorization", "Basic " + base64Credentials); hwr.Method = "POST"; hwr.ContentLength = data.Length; Stream dataStream = hwr.GetRequestStream(); dataStream.Write(data, 0, data.Length); WebResponse response = hwr.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream, Encoding.UTF8); string content = reader.ReadToEnd(); ```
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加密的数据就一定会用到=和/ 这些特殊符号
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
JSON解析——net.sf.json.JSONObject
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
2019年还剩1天,我从外包公司离职了
这日子过的可真快啊,2019年还剩1天,外包公司干了不到3个月,我离职了
我一个37岁的程序员朋友
周末了,人一旦没有点事情干,心里就瞎想,而且跟几个老男人坐在一起,更容易瞎想,我自己现在也是 30 岁了,也是无时无刻在担心自己的职业生涯,担心丢掉工作没有收入,担心身体机能下降,担心突...
计算机网络的核心概念
这是《计算机网络》系列文章的第二篇文章 我们第一篇文章讲述了计算机网络的基本概念,互联网的基本名词,什么是协议以及几种接入网以及网络传输的物理媒体,那么本篇文章我们来探讨一下网络核心、交换网络、时延、丢包、吞吐量以及计算机网络的协议层次和网络攻击。 网络核心 网络的核心是由因特网端系统和链路构成的网状网络,下面这幅图正确的表达了这一点 那么在不同的 ISP 和本地以及家庭网络是如何交换信息的呢?...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
程序员如何通过造轮子走向人生巅峰?
前言:你所做的事情,也许暂时看不到成果。但不要灰心,你不是没有成长,而是在扎根。 程序员圈经常流行的一句话:“不要重复造轮子”。在计算机领域,我们将封装好的组件、库,叫做轮子。因为它可以拿来直接用,直接塞进我们的项目中,就能实现对应的功能。 有些同学会问,人家都已经做好了,你再来重新弄一遍,有什么意义?这不是在浪费时间吗。 殊不知,造轮子是一种学习方式,能快速进步,造得好,是自己超强能力的表...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试一个ArrayList我都能跟面试官扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
立即提问