2

JSON パラメータを渡して、App Engine にデプロイされたサーブレットを呼び出そうとしています。以下はコードです:

    public static String doPost(String url, String jsonData)
        throws ClientProtocolException, IOException {
    HttpClient httpclient = new DefaultHttpClient();
    HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 0); // Timeout

    HttpPost request = new HttpPost(url);
    StringEntity s = new StringEntity(jsonData);
    s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json"));
    HttpEntity entity = s;
    request.setEntity(entity);
    HttpResponse response = httpclient.execute(request);
    HttpEntity resEntity = response.getEntity();
    if (resEntity != null) {
        // Log.i("RESPONSE", EntityUtils.toString(resEntity));
        String responseData = EntityUtils.toString(resEntity).trim();
        return responseData;
    }
    return null;
}

URL を次のように渡しています: http://abcd.appspot.com/

しかし、コードがエミュレーターで実行されると、 「java.net.UnknownHostException: Host is unresolved」エラーが発生します。しかし、Android 2.2.1 デバイスで同じコードを実行すると、すべて正常に動作します。しかし、すべてのバージョンで試したエミュレーターでコードを実行できませんでした。

スタックトレース:

W/System.err(  987): java.net.UnknownHostException: Host is unresolved: aamjantaatest.appspot.com:80
W/System.err(  987):    at java.net.Socket.connect(Socket.java:1002) W/System.err(  987):   at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:117) 
W/System.err(  987):    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:129) 
W/System.err(  987):    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
W/System.err(  987):    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
W/System.err(  987):    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348)
W/System.err(  987):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
W/System.err(  987):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
W/System.err(  987):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
W/System.err(  987):    at com.aamjantaa.android.service.Request.doPost(Request.java:62) 
W/System.err(  987):    at com.aamjantaa.android.intent.StoreListView$StoreListAsynTask.doInBackground(StoreListView.java:170) 
W/System.err(  987):    at com.aamjantaa.android.intent.StoreListView$StoreListAsynTask.doInBackground(StoreListView.java:1) 
W/System.err(  987):    at android.os.AsyncTask$2.call(AsyncTask.java:185) 
W/System.err(  987):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:256) 
W/System.err(  987):    at java.util.concurrent.FutureTask.run(FutureTask.java:122) 
W/System.err( 987):     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:648) 
W/System.err(  987):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:673) 
W/System.err(  987):    at java.lang.Thread.run(Thread.java:1058)
4

2 に答える 2

2

エミュレータがインターネットに接続されていない可能性があります。エミュレータを再起動しない場合は、ブラウザを起動してエミュレータがインターネットに接続できるかどうかを確認してください。

于 2011-07-13T05:10:40.147 に答える
0

上記URL http://abcd.appspot.com/がブラウザで開かなかったのでここに画像の説明を入力、確認しましたのでもう一度確認してください

于 2011-07-13T16:49:23.987 に答える