2016-05-02 2 views
1

Я пытаюсь сделать пост запроса с помощью следующего кода:ждут HttpClient.PostAsync метод ошибки компиляция

string resourceAddress = "url"; 
string postBody = "jsonbody"; 
var httpClient = new HttpClient(); 
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
HttpResponseMessage x = await httpClient.PostAsync(resourceAddress, new StringContent(postBody, Encoding.UTF8, "application/json")); 

Я получил эту ошибку компиляции: «ОЖИДАНИЕ» оператор может быть использована только в пределах асинхронный метод

Любые идеи? PostAsync возвращает Task<HttpResponseMessage> ...

+1

Хорошо, это ваш метод 'async'? –

ответ

2

Ваш метод должен быть отмечен как async:

public async ReturnType MethodName() 
{ 
    string resourceAddress = "url"; 
    string postBody = "jsonbody"; 
    var httpClient = new HttpClient(); 
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
    HttpResponseMessage x = await httpClient.PostAsync(resourceAddress, new StringContent(postBody, Encoding.UTF8, "application/json")); 
} 

Не зная ни тип возвращаемого вашего метода, ни имя метода и его аргументы, я использовал неопределенные имена и без параметров , Вы должны заменить их на реальный.

Как правило, всякий раз, когда вы хотите использовать оператор await (Это происходит, когда вы хотите сделать асинхронный вызов), вам также нужно использовать оператор async. Оператор async используется, чтобы обозначить, что вы собираетесь отправиться в await. Затем компилятор строит для вас конечный автомат, который используется во время выполнения, для асинхронного выполнения вашего кода.

+0

Спасибо, Христос! –

+0

@TomerZvirsh Добро пожаловать. Я рад, что помог. – Christos

Смежные вопросы