2017-02-21 30 views
0

Я тестировал этот код, и он работал в первый раз; теперь я получаю пустой ответ. Однако с Postman я могу получить ответ. Кажется, что Джсон не читается правильно. Я возвращаю ошибку 400.HttpClient не работает в asp.net (работает в Postman)

private Guid GetToken() 
{ 
var client = new HttpClient(); 
var uri = "url"; 
var jsonInString = JsonConvert.SerializeObject(new Authorization()); 

var response = client.PutAsync(uri, new StringContent(jsonInString, Encoding.UTF8, "application/json")).Result; 
var x = response.Content.ReadAsStringAsync().Result; 

if(x=="") 
    return Guid.Empty; 

return new Guid(response.Content.ReadAsStringAsync().Result); 
} 

public class Authorization 
{ 
    public string _x; 
    public Guid _y; 
    public Guid _z; 
    public long _a; 
    public long _b; 

    public Authorization() 
    { 
     x = 123; //dummy data 
     y = xx-xx-xx-xxxxx-xx-xxxx; 
     z = xx-xx-xx-xxxxx-xx-xxxx; 
     a = 123; 
     b = 123; 
    } 
} 
+0

Http code 400 остается за «плохим запросом». Это означает, что бэкэнд приложения не может обрабатывать данный запрос. Возможно, вы перепутали метод (Get/Post) с Postman и вашим реальным приложением. – reporter

+0

Может быть, вы забыли объявить транспортный метод? – reporter

+0

Метод PUT, на самом деле я ничего не изменил. Это правильный ответ var = client.PutAsync (uri, новый StringContent (jsonInString, Encoding.UTF8, "application/json")). Результат; –

ответ

0

Мне это удалось. Проблема заключалась в названии атрибутов в Json object.

Я использовал Resharper и переименовал свои переменные в Json object от Id к _ID (обратите внимание на подчеркивание).