Отправка массива JSON в веб-сервис в Android - PullRequest
2 голосов
/ 08 апреля 2010

У меня проблемы с тем, что должно быть довольно простой задачей. Мне просто нужен массив JSON с одним объектом JSON, который будет размещен в моем веб-сервисе. Весь запрос URL должен быть отформатирован так:

<a href="http://www.myserver.com/myservice.php?location_data=[" rel="nofollow noreferrer">http://www.myserver.com/myservice.php?location_data=[</a>{"key1":"val1","key2":"val2"....}]

Я не могу понять, как добавить бит 'location_data' с помощью HttpPost. Вот фрагмент кода, демонстрирующий используемый мной метод HTTP-соединения:

</p> <pre><code> HttpClient hClient = new DefaultHttpClient(); HttpPost hPost = new HttpPost(url); try { hPost.setEntity(new StringEntity(string)); hPost.setHeader("Accept", "application/json"); hPost.setHeader("Content-type", "application/json"); //execute request HttpResponse response = (HttpResponse) hClient.execute(hPost); HttpEntity entity = response.getEntity();

У меня нет синтаксических ошибок, и мой код нормально обращается к серверу, но не в том формате, в котором нуждается сервер. Будем весьма благодарны за любую помощь в том, как отформатировать мой запрос, чтобы он выглядел так, как мне нужно!

1 Ответ

2 голосов
/ 08 апреля 2010

Добавление данных ключа / значения в URL после символа «?»ПОЛУЧИТЬ не POST.

Вот как POST данные в Java:

String urlText = "http://www.myserver.com/myservice.php";
String postContent = "location_data=[{\"key1\":\"val1\",\"key2\":\"val2\"}]";
try {
  HttpURLConnection c = (HttpURLConnection) new URL(urlText).openConnection();
  c.setDoOutput(true);
  OutputStreamWriter writer = new OutputStreamWriter(c.getOutputStream(), "UTF-8");
  writer.write(postContent);
  writer.close();
} catch (IOException e) {
  e.printStackTrace();
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...