0

バックグラウンド スレッドで get リクエストを送信し、次のコードを使用したいと考えています。

public HttpResponse sendRequestInBackground(String clickUrl){
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy); 

    HttpResponse response = null;
    try {        
            HttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet(clickUrl);
            HttpContext context = new BasicHttpContext();
            response = client.execute(request, context);
            Log.d("SEND_GET_REQUEST", "GET REQUEST SENT WITH URL: " + clickUrl);
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }  catch (Exception e){
          e.printStackTrace();
        }
        return response;
    }

しかし、java.lang.IllegalStateException: Scheme 'market' not registered.私が間違っていることについてのアイデアはありますか?

4

4 に答える 4

0

http://loopj.com/android-async-http/を使用しましたが、完璧に機能しました。

于 2013-10-16T18:41:56.060 に答える
0

送信された URL の形式が正しくないようです。あなたの URL は次のようなものだと思います:market://details?id=com.example.baconこれは有効な URL ではありません。アプリケーションに対して Play ストアを開こうとしている場合は、代わりにインテントを使用します。

次のようにします (com.example.bacon はアプリケーションのパッケージ名です):

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("market://details?id=com.example.bacon")); 
startActivity(intent);

これ以上コードを投稿することなく、それが私にできる最善のことです。

于 2013-10-16T18:29:57.057 に答える