首页 新闻 赞助 找找看

Winform Post提交 的问题

0
悬赏园豆:50 [已解决问题] 解决于 2016-04-28 13:50
  HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
            webReq.Method = "POST";
            webReq.ContentType = "application/x-www-form-urlencoded";
           
            byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(postData);
            webReq.ContentLength = bytes.Length;
            //加上这个后很快 不加这个响应很慢
            webReq.Proxy = null;

            Stream reqStream = webReq.GetRequestStream();

            reqStream.Write(bytes, 0, bytes.Length);
            reqStream.Close();

            HttpWebResponse responseStream = (HttpWebResponse)webReq.GetResponse();
            StreamReader webStream = new StreamReader(responseStream.GetResponseStream(), Encoding.Default);
            //网页返回信息
            string message = webStream.ReadToEnd();
            return message;

源码如上 ,提交到对方URL 那边跟踪的提交参数都是空的 我这边调试的时候 传过去的都有值得。求解

zklve2的主页 zklve2 | 初学一级 | 园豆:3
提问于:2016-04-27 15:11
< >
分享
最佳答案
0

1、确定那边是POST接收参数噻

2、确定你传递了数据。写日志,跟踪

收获园豆:50
Supper_litt | 小虾三级 |园豆:827 | 2016-04-27 15:34

日志跟踪到本地传值的时候是有值的,跟对方对接的时候对方获取请求日志那 是没有值的,纠结。对方的接口是Post传值的 ,用get试了一下不行,接口文档上也写的是POST方式,关键是 有的可以有的到那边就成空的了

zklve2 | 园豆:3 (初学一级) | 2016-04-27 16:16

@zklveyjx: 

webReq.ContentType = "application/x-www-form-urlencoded";

这个属性,添加到Header里面用。

webReq.Headers.Add("","");

Supper_litt | 园豆:827 (小虾三级) | 2016-04-27 16:38
其他回答(3)
0

吧GB2312换成UTF8试试

刘宏玺 | 园豆:14020 (专家六级) | 2016-04-27 15:34

事实证明跟这个没有关系。。。。

支持(0) 反对(0) zklve2 | 园豆:3 (初学一级) | 2016-04-27 16:19
0

参考下

using (var client = new HttpClient())
{
client.BaseAddress = new Uri(string.Format(format_UriString, streamServerIp, streamServerPort));
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

string json = string.Format("{{\"ip\":\"{0}\", \"id\":\"{1}\"}}", ip, deviceid);
var httpContent = new StringContent(json, Encoding.UTF8);

var response = client.PostAsync(url, httpContent);
var responseString = response.Result.Content.ReadAsStringAsync();
}

waiter | 园豆:1000 (小虾三级) | 2016-04-27 17:43

reqStream.Close(); 这句去掉。

支持(0) 反对(0) waiter | 园豆:1000 (小虾三级) | 2016-04-27 17:54
0

StreamReader webStream = new StreamReader(responseStream.GetResponseStream(), Encoding.Default);

这个编码方式改成跟上面的GB2312一样。

BB_Coder | 园豆:797 (小虾三级) | 2016-04-27 17:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册