原代码如下:private WebClient _client = new WebClient();string postValues = "VER=1.1&CMD=GetMsgEx&SEQ="+DateTime.Now.Ticks.ToString().Substring(7,7)+"&UIN="+Number;_client.Headers.Add("Content-Type","application/x-www-form-urlencoded");
Byte[] byteArray = ystem.Text.Encoding.ASCII.GetBytes(postValues);
Byte[] pageData = _client.UploadData(Host,"POST",byteArray);这段代码在最后一句时出错,出错内容如下:
错误:source:System
message:服务器提交了协议冲突. Section=ResponseStatusLine
stackTrace: 在 System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request)
在 System.Net.WebClient.UploadData(Uri address, String method, Byte[] data)
在 System.Net.WebClient.UploadData(String address, String method, Byte[] data)也就是说,最后一句UploadData时出错。
请大侠帮助,能否用Tcpclient来实现这段代码?同时,提供一段php代码:
function query($str)
{
$fp = fsockopen('tqq.tencent.com', '8000', $errno, $errstr, 1); if(!$fp){
$GLOBALS['QQ_ERROR_MSG'] = "ERROR:$errstr ($errno)";
return QQ_SOCKET_ERROR;
}
else
{
$str = str_replace("\r\n","\n",$str);
fputs($fp, "POST HTTP/1.1\r\n");
fputs($fp, "Content-length: ".strlen($str)."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $str . "\r\n\r\n"); $res = "";
while(!feof($fp))
{
$res .= fgets($fp, 4096);
} fclose($fp); $len = strlen($res); if($res)
{
$header = array();
list($header[],$header[],$header[],$header[],$header[],$body) = explode("\n",$res,6);
$body = chop($body,"\r\n");
}
else
{
return false;
}
return $body;
}
}如果有哪位大侠能把这段php代码用c#来实现也是一样的,,谢谢啦
Byte[] byteArray = ystem.Text.Encoding.ASCII.GetBytes(postValues);
Byte[] pageData = _client.UploadData(Host,"POST",byteArray);这段代码在最后一句时出错,出错内容如下:
错误:source:System
message:服务器提交了协议冲突. Section=ResponseStatusLine
stackTrace: 在 System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request)
在 System.Net.WebClient.UploadData(Uri address, String method, Byte[] data)
在 System.Net.WebClient.UploadData(String address, String method, Byte[] data)也就是说,最后一句UploadData时出错。
请大侠帮助,能否用Tcpclient来实现这段代码?同时,提供一段php代码:
function query($str)
{
$fp = fsockopen('tqq.tencent.com', '8000', $errno, $errstr, 1); if(!$fp){
$GLOBALS['QQ_ERROR_MSG'] = "ERROR:$errstr ($errno)";
return QQ_SOCKET_ERROR;
}
else
{
$str = str_replace("\r\n","\n",$str);
fputs($fp, "POST HTTP/1.1\r\n");
fputs($fp, "Content-length: ".strlen($str)."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $str . "\r\n\r\n"); $res = "";
while(!feof($fp))
{
$res .= fgets($fp, 4096);
} fclose($fp); $len = strlen($res); if($res)
{
$header = array();
list($header[],$header[],$header[],$header[],$header[],$body) = explode("\n",$res,6);
$body = chop($body,"\r\n");
}
else
{
return false;
}
return $body;
}
}如果有哪位大侠能把这段php代码用c#来实现也是一样的,,谢谢啦
解决方案 »
- 求一个简单的请假审批流程的源代码(c#)
- 【【【有用过 Web Chart 的吗】】】
- 序列化与反序列化在两个EXE中如何使用
- 求:遍历硬盘,获得共享文件夹的组或名称以及他们的权限
- C#如何将多个图标添加到EXE或DLL文件?就象Windows的shell32.dll包括有200多个图标资源。
- (急)我用TcpServer和TcpClient写了一个服务器端和一个客户端,请问为什么不能在单机上连接呢?
- VS2008 打开项目时遇到问题
- 谁能解决这个难题呀???(C#)
- 怎样把下面的数据读入c++啊?!!高手高手高高手
- 关于TextBox只能输入数字的问题
- 求提取<td>和</td>之间内容的正则表达式-修改
- 如何得到窗体内按键
// 创建一个新的 WebClient 实例.
WebClient myWebClient = new WebClient();
string postData = "Username=admin&Password=admin";
// 注意这种拼字符串的ContentType
myWebClient.Headers.Add("Content-Type","application/x-www-form-urlencoded");
// 转化成二进制数组
byte[] byteArray = Encoding.ASCII.GetBytes(postData);
// 上传数据,并获取返回的二进制数据.
byte[] responseArray = myWebClient.UploadData(uriString,"POST",byteArray);
"myWebClient.UploadData" 这个代码会出错,,居然会丢包的,,
同样一个程序,php写的就很稳定,不出错,
我用.updloadData就一直出错,丢失包。
myWebClient.Headers.Add("Content-Type","application/x-www-form-urlencoded");
if (cookie_!="")
{
myWebClient.Headers.Add("Cookie",cookie_);
}
byte[] byteArray = Encoding.ASCII.GetBytes(postData);
byte[] responseArray = myWebClient.UploadData(url_,"POST",byteArray);
return Encoding.GetEncoding(54936).GetString(responseArray);
我这样写也没有丢包也没有出错