HTTP-запросы в Glass GDK

Я реализую приложение GDK, и мне нужно выполнить в своем приложении несколько запросов HTTP Post. Отправлять ли HTTP-запросы так же, как на телефоне Android, или есть другой способ сделать это? (Я попробовал код, который использую на своем телефоне, и он не работает для стекла.)

Заранее благодарны за Вашу помощь.


person lucy    schedule 21.05.2014    source источник
comment
Можете ли вы предоставить пример кода того, как вы это делаете, и какую ошибку вы получаете, когда пытаетесь?   -  person Prisoner    schedule 21.05.2014


Ответы (1)


Вы можете сделать любой почтовый запрос, как на смартфонах, но убедитесь, что вы делаете запросы с помощью AsyncTask.

Например:

private class SendPostTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... params) {
            // Make your request POST here. Example:
            myRequestPost();
            return null;
    }

    protected void onPostExecute(Void result) {
      // Do something when finished.
    }
}

И вы можете вызвать эту асинхронную задачу где угодно с помощью:

new SendPostTask().execute();

И пример myRequestPost() может быть:

private int myRequestPost() {

    int resultCode = 0;

    String url = "http://your-url-here";

    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(url);

    // add headers you want, example:
    // post.setHeader("Authorization", "YOUR-TOKEN");

    List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("id", "111111"));
    nameValuePairs.add(new BasicNameValuePair("otherField", "your-other-data"));

    try {
        post.setEntity(new UrlEncodedFormEntity(urlParameters));

        HttpResponse response = client.execute(post);
        System.out.println("\nSending 'POST' request to URL : " + url);
        System.out.println("Post parameters : " + post.getEntity());
        System.out.println("Response Code : " + 
                                    response.getStatusLine().getStatusCode());

        resultCode = response.getStatusLine().getStatusCode();

        BufferedReader rd = new BufferedReader(
                        new InputStreamReader(response.getEntity().getContent()));

        StringBuffer result = new StringBuffer();
        String line = "";
        while ((line = rd.readLine()) != null) {
            result.append(line);
        }

        System.out.println(result.toString());
    } catch (Exception e) {
        Log.e("POST", e.getMessage());
    }

    return resultCode;
}
person antonio    schedule 23.05.2014