1
URL url = new URL(versionPath);
Toast.makeText(getApplicationContext(), versionPath, Toast.LENGTH_SHORT).show();
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();

Toast.makeText(getApplicationContext(), "HttpURLConnection Complete!", Toast.LENGTH_SHORT).show();

捕获异常,第一个版本路径文本正确,看不到“HttpURLConnection Complete!” 文本。当我在设备内的浏览器上复制相同的“versionPath”时,我可以看到内容。我的清单中有 INTERNET 权限。任何想法?

4

1 回答 1

0

这对我有用,我相信所有的类都是 android 的一部分,并且没有使用外部库。

public static JSONObject getJsonFromUrl(String urlString) throws UnsupportedEncodingException, IllegalStateException, IOException, JSONException {
    // set the connection timeout value to 10 seconds (10000 milliseconds)
    final HttpParams httpParams = new BasicHttpParams();
    HttpConnectionParams.setConnectionTimeout(httpParams, 10000); //how long to wait for connection
    HttpConnectionParams.setSoTimeout(httpParams, 10000); //how long to wait for response
    // Create a new HTTP Client
    DefaultHttpClient defaultClient = new DefaultHttpClient(httpParams);
    // Setup the get request
    HttpGet httpGetRequest = new HttpGet(urlString);
    // Execute the request in the client
    HttpResponse httpResponse = defaultClient.execute(httpGetRequest);
    // Grab the response
    BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8"));
    StringBuilder json = new StringBuilder();
    String line = null;
    while ((line = reader.readLine()) != null) {
        json.append(line);
    }

    // Instantiate a JSON object from the request response
    JSONObject jsonObject = new JSONObject(json.toString());

    return jsonObject;
}
于 2013-06-14T03:55:47.397 回答