1

Android でパラメータ化された URL にアクセスしたい。それがしなければならないのは、ページを「ロード」して、本来の動作を実行することです(指定されたパラメーターでデータベースを更新します)。

URL を読み込むだけで問題が発生したので、通常の HttpClient アクティビティに関するビデオを見ました。応答を待ってその情報を収集するだけでした。まだページをロードしているため、そのページも実行できると考えました。ページを正しく実行したり、応答を収集したりすることさえできません。

使用したコードは次のとおりです。

String url = "http://www.removed.com?param1="+param1+"&param2="+param2;

        try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpGet httpget = new HttpGet(url);
            HttpResponse response = httpclient.execute(httpget);
            HttpEntity entity = response.getEntity();
            InputStream webs = entity.getContent();
            try{
                BufferedReader reader = new BufferedReader(new InputStreamReader(webs, "iso-8859-1"), 8 );
                test.setText(reader.readLine());
                webs.close();
            }catch(Exception e) {
                Log.e("Error in conversion: ", e.toString());
            }
        }catch(Exception e) {
            Log.e("Error in connection: ", e.toString());
        }

これを取得してページを実行し、データベースを更新するにはどうすればよいか教えてください。パラメータをブラウザに手動で入力すると、機能します。

4

2 に答える 2

2

これを実行している場所やエラーの内容は投稿していませんが、最初に思い浮かぶのは次の 2 つです。

  • マニフェストに INTERNET アクセス許可が設定されていますか?
  • これが Honeycomb の場合、これは別のスレッドで実行されていますか? - 3.0 以降、メイン ディスプレイ スレッドで HTTP リクエストを実行することはできません。
于 2012-05-26T07:25:48.857 に答える
0

回答のコメントを読んだ後、U は応答コードを探していると思います。私のコードでうまく機能しているコードをここに投稿しています

String urlGET = "http://www.removed.com?param1="+param1+"&param2="+param2;

HttpGet getMethod = new HttpGet(urlGET);
    // if you are having some headers in your URL uncomment below line 
    //getMethod.addHeader("Content-Type", "application/form-data");
    HttpResponse response = null;
    HttpClient httpClient = new DefaultHttpClient();
    try {
        response = httpClient.execute(getMethod);

        int responseCode = response.getStatusLine().getStatusCode();

        HttpEntity entity = response.getEntity();
        String responseBody = null;

        if (entity != null) {
            responseBody = EntityUtils.toString(entity);
          //here you get response returned from your server
            Log.e("response = ", responseBody);

            // response.getEntity().consumeContent();

        }
        JSONObject jsonObject = new JSONObject(responseBody);
         // do whatever you want to do with your json reponse data

        }
        catch(Exception e)
        {
        e.printStackTrace();
        }
于 2014-09-26T10:26:52.333 に答える