读书人

C#POST数据到服务器lt;非.NET语言gt;有关问

发布时间: 2013-03-01 18:33:02 作者: rapoo

C#POST数据到服务器<非.NET语言>问题,接收为空问题
代码如下

string strReturn = "";
string url = @"http://aa.XXX.com/bb.do";
try
{
byte[] obtPostData = Encoding.UTF8.GetBytes(sbJSON.ToString());
HttpWebRequest orqRequest = (HttpWebRequest)WebRequest.Create(url);
orqRequest.Timeout = 3000;

orqRequest.Method = "POST";
orqRequest.ContentType = "application/json;charset=utf-8";
orqRequest.ContentLength = obtPostData.Length;


Stream stream;
using (stream = orqRequest.GetRequestStream())
{
stream.Write(obtPostData, 0, obtPostData.Length);
}

HttpWebResponse orsResponse = (HttpWebResponse)orqRequest.GetResponse();

using (Stream responseStream = orsResponse.GetResponseStream())
{
using (StreamReader streamRead = new StreamReader(responseStream, Encoding.UTF8))
{
strReturn = streamRead.ReadToEnd();
}
}

}
catch (WebException e)
{
//写日志
LogManager.WriteLog(LogFile.Trace, e.Message.ToString());
}


服务器接收老是为空!
不知道什么问题
我本地测试接收返回又都没有问题
哪位大侠帮我看一下
[解决办法]
引用:
代码如下
C# code
string strReturn = "";
string url = @"http://aa.XXX.com/bb.do";
try
{
byte[] obtPostData = Encoding.UTF8.GetB……

看看日志抛的什么异常?
[解决办法]
把content type 改这个application/x-www-form-urlencoded看呢
[解决办法]
orqRequest.Timeout = 3000;删掉

这个就是说超时时间只有3秒,你发布到服务器,访问肯定会超过3秒的,设置为orqRequest.Timeout =-1;
如果再不行就不知道了。
[解决办法]
orqRequest.ContentType = "application/json;charset=utf-8";这个应该是获取服务器端的设置,你这边应该是 orqRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";试下
[解决办法]
搞个简单的网页,弄几个intput,post数据到服务器上,看服务器能接受不,如果服务器能接收,按抓包中的数参数提交参数,包括header,如果不行。。。。。
[解决办法]
东西看不见,所以你也不能一口就咬定我一定正确

请用一些封包拦截工具,拦截你提交的过程。看封包数据是否就是你认为的那样,如果要求的完全一样就把封包数据直接给对方开发人员和你对方人员说,不是我的错
[解决办法]
学习学习
我一般都是写纯html语句 然后submit()提交

读书人网 >asp.net

热点推荐