2017-01-18 4 views
0

У меня есть следующий запрос HTTP POST, в питона:Преобразование из запроса питон HTTP в C# HTTP запрос

auth_req = requests.post(baseurl, 
         data={'username': 'User', 'password': 'Password', 'output_mode': 'json'}, verify=False) 

Я пытаюсь "Преобразование" запрос на C# следующим образом:

var tHttpReq = (HttpWebRequest)WebRequest.Create(URL); 
      // adds basic headers 

tHttpReq.ContentType = "application/json"; 
tHttpReq.Method = "POST"; 
tHttpReq.Accept = "application/json"; 
using (StreamWriter sWriter = new StreamWriter(tHttpReq.GetRequestStream())) 
{ 
     // creates request body in the concrete class 
     string rBody = "{\"username\": \"User\", \"password\": \"Password\", \"output_mode\": \"json\"}"; 
     // writes the data to the stream 
     sWriter.Write(rBody); 
     sWriter.Flush(); 
} 
var webHttpResp = (HttpWebResponse)tHttpReq.GetResponse(); 

И у меня возникла ошибка с неправильным запросом, в чем проблема?

Спасибо.

+0

где находится webRequest? Вы должны использовать tHttpReq вместо меня reckon – Newboy

+0

@Newboy, да его опечатка, отредактируйте сообщение. – CSharpBeginner

ответ

0

Использование HttpClient облегчает работу. Вы можете сделать что-то вроде этого:

using (var client = new HttpClient()) 
    { 
     client.BaseAddress = new Uri(@"http://yourEndPoint.com"); 
     HttpContent content = new StringContent("{'json' : 'value'}", Encoding.UTF8, "application/json"); 
     var result = await client.PostAsync("/endpoint", content); 
     var contentAsString = await result.Content.ReadAsStringAsync(); 
    } 
Смежные вопросы