0

を取得する 2 つのほぼ同一のメソッドを作成しましたJSONObject。新しいメソッドはClientProtocolException、コード 500 をスローします。これら 2 つのメソッドの違いによって、一方が例外をスローし、もう一方が完全に正常に動作する可能性があることを理解しようとしています。

方法 #1:

public class MainActivity extends Activity
{
    // fluff

    protected JSONObject retrieveJSON()
    {
        HttpClient client = new DefaultHttpClient();
        String url = getString(R.string.url);
        String result = null;
        JSONObject json = null;

        try
        {
            HttpGet getMethod = new HttpGet(url);
            ReponseHandler<String> responseHandler = new BasicResponseHandler();
            result = client.execute(getMethod, responseHandler);

            json = new JSONObject(responseBody);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }   
}

方法 2

public class ServiceRequest
{
    public ServiceRequest()
    {
    }

    public ServiceRequest(String url)
    {
        this.URL = url;
    }

    public String URL;

    public String execute()
    {
        String result = null;
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet getRequest = new HttpGet(this.URL);

        try
        {
            ResponseHandler<String> handler = new BasicResponseHandler();
            result = httpClient.execute(getRequest, handler);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

        return result;
    }
}

どちらのメソッドも返さresultれ、それを に処理しJSONObjectます。または、少なくとも、両方の方法が想定されています。私が考えることができる唯一の大きな違いは、メソッド #1がメイン アクティビティのクラス メソッドとしてコーディングされているのに対し、メソッド #2はスタンドアロン クラスに存在することです。この違いは何をスローするのClientProtocolExceptionでしょうか?

4

0 に答える 0