gpt4 book ai didi

c# - 无法从 .Net 应用程序发送发布请求,它适用于 Chrome RESTClient

转载 作者:可可西里 更新时间:2023-11-01 16:11:38 24 4
gpt4 key购买 nike

为什么我无法使用以下命令和其他一些类似的代码发送 POST 请求。当我使用 Mozilla 浏览器的 RESTClient 发送相同的请求时,它工作正常。这仅适用于部署在 LAN 上/甚至在我的本地计算机上的服务器模拟器。使用实时服务器,它工作正常。

ASCIIEncoding encoding = new ASCIIEncoding();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://192.168.220.12:5000"); // this is my system's local ip
byte[] byteArray = encoding.GetBytes("hello");
request.Method = "POST";
request.ContentType = "text/xml";// i tried it with "application/x-www-form-urlencoded" as well
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Flush();
dataStream.Close();
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
Console.ReadKey();
reader.Close();
dataStream.Close();
response.Close();

通过在服务器上测试,我看到有成功接收到请求的消息,但它没有显示从上述代码接收到的数据,而是显示了来自 RESTclient 的数据。

可能是什么原因。是否有任何防火墙不允许将 postdata 从 .net 库发送到模拟器?

这与未格式化的 xml 的响应相同,我没有发现 xml 有任何问题(我通过 RESTclient 发送的内容的副本相同)。

最佳答案

不清楚服务器期望请求是什么内容类型。如果它是 application/x-www-form-urlencoded(key=value 对),您可以简化代码:

using (var client = new WebClient())
{
var values = new NameValueCollection
{
{ "key1", "value1" },
{ "key2", "value2" },
};
byte[] result = client.UploadValues("http://192.168.220.12:5000", values);
string resultStr = Encoding.Default.GetString(result);
...
}

如果你想 POST XML 那么:

using (var client = new WebClient())
{
client.Headers[HttpRequestHeader.ContentType] = "text/xml";
string xml = "<foo>Bar</foo>";
string result = client.UploadString("http://192.168.220.12:5000", xml);
}

如您所见,这完全取决于您的服务器端脚本期望什么。

关于c# - 无法从 .Net 应用程序发送发布请求,它适用于 Chrome RESTClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11028240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com