使用http webrequest连接到远程服务器时出错(从php curl转换)

时间:2014-04-30 01:02:09

标签: c# .net curl

我目前正在尝试使用简单的c#应用程序(http webrequest类)测试php curl脚本。 155.00.11.22:1111应该是将消息路由到目标X的代理服务器。

我尝试了两种方法,通过在php中直接向ip创建请求,并将ip设置为webproxy,两者都显示“无法连接到远程服务器”。服务器没有任何问题,因为php脚本运行完美。所以,我需要一些关于可能导致我的c#脚本无法连接到远程服务器的建议。感谢任何帮助,谢谢!

PHP curl脚本:

$data = "<msg><id>PEOPLE</id><loc>LOCATION</loc><ppl>STAFF</ppl></msg>";
$url = 'http://155.00.11.22:1111';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST,1 );
curl_setopt($ch, CURLOPT_POSTFIELDS,$data); 
curl_setopt($ch, CURLOPT_HTTPHEADER,array('Content-Type: text/plain')); 
$result = curl_exec ($ch);
curl_close($ch);

我的C#:

Uri testuri = new Uri("http://155.00.11.22:1111");
string postData = "<msg><id>PEOPLE</id><loc>LOCATION</loc><ppl>STAFF</ppl></msg>";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(testuri);
request.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "text/plain";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();

2 个答案:

答案 0 :(得分:0)

我认为对此问题没有任何疑问。服务器最初设置为接受端口80或8080上的tcip连接。我认为出于安全原因,此端口无法接受来自外部ip的入站连接。您是否尝试对155.00.11.22:80或8080进行相同的调用以及要调用的页面是域中的默认页面?如果您无法从本地计算机ping该IP,则表示从远程到该连接的连接端口是不允许的。 在测试脚本之前检查此网络问题。

答案 1 :(得分:0)

我遇到了类似的问题,我发现我的IP地址已经改变了。我正在使用安装了Wamp with Apache。