Запрос помощи для написания HTTP-запроса в Android - PullRequest
1 голос
/ 14 сентября 2009
package com.example.helloandroid;

import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.*;
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.DefaultHttpClient;
//import org.apache.http.util.EntityUtils;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        try
        {
            HttpClient hc = new DefaultHttpClient();
            HttpGet get = new HttpGet("http://www.yahoo.com");
            HttpResponse rp = hc.execute(get);

            if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
            {
                //String str = EntityUtils.toString(rp.getEntity());
                InputStream is = rp.getEntity().getContent();           
                String str = is.toString();

                TextView tv = new TextView(this);
                tv.setText(str);
                setContentView(tv);

            }
            else
            {
                System.out.println("halo,baby.");
            }
        }catch(IOException e){
            return;
        }
    }
}

выше мой код.
но, похоже, здесь есть некоторые проблемы.
Итак, кто-нибудь может дать мне несколько идей по этому поводу?
Спасибо.

Кармен Лау

Ответы [ 3 ]

1 голос
/ 30 января 2011

Вы можете посетить этот сайт. там есть статья об ответе http запроса от приложения для Android.

http://www.softwarepassion.com/android-series-get-post-and-multipart-post-requests/

1 голос
/ 15 сентября 2009

Не зная, в чем проблема, трудно диагностировать, но я подозреваю, что следующая строка не то, что вы хотите:

String str = is.toString();

Object.toString() возвращает «строку, содержащую краткое, понятное человеку описание этого объекта». Что не всегда то, что вы ожидаете. Вы, вероятно, на самом деле захотите извлечь данные вручную, например:

byte[] readBytes; // create an empty byte array
is.read(readBytes); // read from the InputStream and put input in the byte array
String str = new String(readBytes); // creat a new String from the byte array

Затем установите текст TextView на str, как вы уже делали.

0 голосов
/ 16 сентября 2009

Для mldj и MattC, Проблема в том, что я не могу распечатать ответное сообщение. Что касается моего кодирования, то части импорта также публикуются, но я не знаю, почему они становятся черными буквами только в начале моего кодирования.

На самом деле, я хочу отправить запрос на получение Yahoo, получить ответ и распечатать его. но теперь я открываю свое приложение, и оно пустое.

Итак, я не уверен, что проблема (1) Я использовал неправильный метод, чтобы распечатать его ИЛИ ЖЕ (2) мое приложение не может отправить запрос в Yahoo и не получило от меня ответа с самого начала и до настоящего времени.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...