无法在Android中建立HttpURLConnection

时间:2013-06-14 03:46:44

标签: android http

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完成!”文本。当我在设备内的浏览器上复制相同的“versionPath”时,我可以看到内容。我的清单中有INTERNET权限。有什么想法吗?

1 个答案:

答案 0 :(得分: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;
}