Как лучше всего отправить пару имя-значение на сервер? - PullRequest
0 голосов
/ 23 февраля 2012

Я пробовал это в течение большей части двух недель, и я действительно застрял. Первоначально я создал простую клиент-серверную программу ObjectOutputStream, где клиентом является приложение Android, но оно не работает (оно читает соединение, но не объект).

Так что теперь я не понимаю, какие еще подходы я могу использовать для выполнения этой простой задачи? Может ли кто-нибудь помочь?

Ответы [ 4 ]

0 голосов
/ 23 февраля 2012

Вы можете использовать это, чтобы отправить Сущность на сервер:

    HttpClient httpClient = new DefaultHttpClient();
    HttpPost postRequest = new HttpPost(url);
    postRequest.setEntity(entity);
    try {

        HttpResponse response = httpClient.execute(postRequest
                );
        String jsonString = EntityUtils.toString(response
                .getEntity());
        Log.v(ProgramConstants.TAG, "after uploading file "
                + jsonString);
        return jsonString;

    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

Сущность может быть парой имя-значение:

List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("key1", value1));
nvps.add(new BasicNameValuePair("key2", value2));
Entity entity=new UrlEncodedFormEntity(nvps, HTTP.UTF_8)  

Или вы можете отправитьсущность с bytearray.

Bitmap bitmapOrg=getBitmapResource();
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 90, bao);

byte[] data = bao.toByteArray();

MultipartEntity entity=new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE)
entity.addPart("file", new ByteArrayBody(data, "image/jpeg",
                        "file"));

Если вы хотите отправить json на сервер:
Пожалуйста, перейдите по этой ссылке Как отправить JSon как BODY в POST-запросе на сервер из приложения Android?
Для сериализации и десериализации Java-объекта я рекомендую https://sites.google.com/site/gson/gson-user-guide#TOC-Using-Gson Очень надеюсь, что он поможет вам увидеть обзор отправки данных на сервер

0 голосов
/ 23 февраля 2012

вы можете попробовать JSON stirng для отправки данных.У нас есть много материала о том, как работать с JSON, а также есть много API.JSONSimple - это то, что я могу предложить.Это действительно легко.

0 голосов
/ 23 февраля 2012

почему бы вам не попробовать это:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
0 голосов
/ 23 февраля 2012

вы пробовали URLConnection, используя почтовый метод?:)

Или получить метод как:

String yourURL = "www.yourwebserver.com?value1=one&value2=two";
URL url = new URL(yourURL);
URLConnection connection = url.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
response = in.readLine();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...