Во-первых, я пытаюсь опубликовать скрипт в инструменте PostMan.Почему запрос python работает, но запрос C# не работает?
{"AO":"ECHO"}
Это нормально работает. Затем я пишу этот запрос в C#, но он не работает. И еще я написал запрос еще раз в Python, и он работает хорошо. Но мой проект находится в Microsoft C#. Я не хочу запускать скрипт Python в C# вообще.
==== Python =========
import httplib
import json
import sys
data = '{"AO":"ECHO"}'
headers = {"Content-Type": "application/json", "Connection": "Keep-Alive" }
conn = httplib.HTTPConnection("http://10.10.10.1",1040)
conn.request("POST", "/guardian", data, headers)
response = conn.getresponse()
print response.status, response.reason
print response.msg
==== C# ============
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://10.10.10.1:1040/guardian");
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = "application/json";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"AO\":\"ECHO\"}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
Console.WriteLine(result);
}
}
I попробуйте поместить «ContentLength», но это все еще исключение тайм-аута. И я пытаюсь использовать RestSharp, это не таймаут, а возврат null. Любой, пожалуйста, помогите ...
var client = new RestClient("http://10.10.10.1:1040/guardian");
var request = new RestRequest();
request.Method = Method.POST;
request.AddHeader("Content-Type", "application/json");
request.Parameters.Clear();
request.RequestFormat = DataFormat.Json;
request.AddBody(new { AO = "ECHO" });
var response = client.Execute(request);
var content = response.Content;
Пожалуйста, помогите мне, я не понимаю, почему он работает нормально в питона. Но почему он не работает в C#. Я пытаюсь найти много запросов в C#, но он получил исключение ошибки с таймаутом.
Ваша проблема похожа, как это [здесь] (http://stackoverflow.com/questions/1789627/how-to-change-the-timeout-on-a-net-webclient-object)? – shanmugharaj
Уважаемый @Shankfk, Нет проблем с моей проблемой. Это тестирование на моем сетевом сервере. Это займет время всего 3 секунды. И он отлично работает в скрипте python, как описано выше. Но в C# он вообще не работает, он возвращает тайм-аут исключения ошибки. Однако я пытаюсь изменить таймаут. –
У Python и C# используется одна и та же кодировка? –