public static async Task<string> GetData(string url, string data)
{
UriBuilder fullUri = new UriBuilder(url);
if (!string.IsNullOrEmpty(data))
fullUri.Query = data;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.PostAsync(new Uri(url), /*expects HttpContent*/);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
}
PostAsync
принимает еще один параметр, который должен быть HttpContent
.Как настроить HttpContent для моего второго параметра PostAsync HttpClient?
Как настроить HttpContent
? Нет документации в любом месте, который работает для Windows Phone 8.
Если у меня GetAsync
, он отлично работает! но она должна быть POST с содержанием ключа = «бла», что-то = «яй»
// EDIT
спасибо за ответ ... Это хорошо работает, но все-таки несколько unsures здесь:
public static async Task<string> GetData(string url, string data)
{
data = "test=something";
HttpClient client = new HttpClient();
StringContent queryString = new StringContent(data);
HttpResponseMessage response = await client.PostAsync(new Uri(url), queryString);
//response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
}
данные «тест = что-то» я предположил бы забрать на стороне апи как разместить данные «тест», по-видимому, это не так. По другому вопросу мне может потребоваться опубликовать целые объекты/массивы с помощью почтовых данных, поэтому я предполагаю, что json будет лучше всего сделать это. Любые мысли о том, как я получаю данные для публикации?
Может быть что-то вроде:
class SomeSubData
{
public string line1 { get; set; }
public string line2 { get; set; }
}
class PostData
{
public string test { get; set; }
public SomeSubData lines { get; set; }
}
PostData data = new PostData {
test = "something",
lines = new SomeSubData {
line1 = "a line",
line2 = "a second line"
}
}
StringContent queryString = new StringContent(data); // But obviously that won't work
Я проверю это. Я думаю, когда я это выясню, мне придется положить это где-нибудь, где все смогут это увидеть! Это привело меня к работе 4 дня, пытаясь получить простой REST API. – Jimmyt1988
StringContent отлично работает, но на самом деле не может получить PostData для доступа к сайту, на который я звоню сейчас: D. Я отредактирую вопрос, чтобы показать вам, что у меня сейчас есть – Jimmyt1988
. Быстрый ответ на вопрос «как отправить JSON-рецензию на мой класс» - это «сериализовать объект JSON, возможно, с помощью JSON.Net», но это действительно относится к отдельный вопрос. –