Мне нужно опубликовать какое-то значение из моего приложения для Android в моем Asp.Net Web Api. но я только получаю null в своем веб-Api, где, по-вашему, моя проблема?Опубликовать значение от HttpPost Android до Asp.Net Web Api
У меня есть этот код для Android:
в MainActivity:
List<NameValuePair> IdsToSend = new ArrayList<NameValuePair>();
for (Message item : messages) {
IdsToSend.add(new BasicNameValuePair("messageIds", item.Id));
}
parser.sendPostRequest(UpdateMessageStatuseURL ,IdsToSend);
в какой-то другой файл:
public void sendPostRequest(String url, List<NameValuePair> params) {
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));
httpClient.execute(httpPost);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return;
}
и мой Web Api:
public void Post([FromBody]int[] messageIds)
{
var dc = new SMSDataDataContext();
foreach (var item in messageIds)
{
var message = dc.Messages.SingleOrDefault(x => x.Id == item);
if (message != null)
{
message.Statuse = 1;
dc.SubmitChanges();
}
}
}
где null точно? – njzk2
messageIds в Webapi Post – ePezhman
Когда я завязываюсь с такими ошибками, я стараюсь настроить сеть между моим устройством разработки и рабочим столом и использовать скрипач или проводную акулу для просмотра пакетов. Затем вы можете просмотреть данные, которые публикуются. Не задумываясь над этим, я полагаю, что отправляемые данные отправляются не в правильном формате, я уверен, что это должно быть что-то вроде «messageIds [i]» вместо «messageIds» в главном но, как я уже сказал, это просто быстрый взгляд. Попробуйте заменить для каждого на цикл for и присвоить элементам массива значение. – Kennifer