每次调用webservice都会得到:com.android.volley.NoConnectionError:java.io.IOException:Hostname未经验证

时间:2014-08-24 11:35:35

标签: android android-volley

每次调用webservice都会出现错误:com.android.volley.NoConnectionError:java.io.IOException:Hostname未经验证

仅在应用程序设置中执行“强制关闭”有助于使我的应用程序再次从webservice获取结果。

这是一个带有效证书的ssl连接(一切都适用于iOS)。

我在android 4.1.2,4.4.4和模拟器上检查过这个。 Volley库有错吗?我应该在哪里搜索以获得更多信息以便能够解决问题。

我看到有类似的问题,但答案是要删除验证:/

@Override
protected Boolean doInBackground(Object... arg0) {

    // Instantiate the cache
    Cache cache = new DiskBasedCache(ctx.getCacheDir(), 1024 * 1024 * 10); // 10MB cap

    // Set up the network to use HttpURLConnection as the HTTP client.
    Network network = new BasicNetwork(new HurlStack());

    // Instantiate the RequestQueue with the cache and network.
    queue = new RequestQueue(cache, network);
    queue.start();

    future = RequestFuture.newFuture();

    Gson gson = new Gson();
    String jsonString = gson.toJson(generalAsk);
    JSONObject js = null;

    try {
        js = new JSONObject(jsonString);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    jsObjRequest = new JsonObjectRequest(Request.Method.POST, WsUtils.WS_URL + wsAddress, js, future, future);

    queue.add(jsObjRequest);

    try {
        JSONObject response = future.get();

        Gson gs = new GsonBuilder().serializeNulls().create();
        generalResponse = (BaseResponse) gs.fromJson(response.toString(), c);
        return true;

    } catch (InterruptedException e) {
        errorMessage = e.getMessage();
    } catch (ExecutionException e) {
        errorMessage = e.getMessage();
    }
    return false;
}

1 个答案:

答案 0 :(得分:0)

原来,服务器端出现问题。经过几个小时的管理员挖掘,一切都很完美。不幸的是我不知道他们改变了什么,但肯定不是Android故障。