Android:连接到真实服务器但不在本地主机上

时间:2017-05-04 11:37:36

标签: android post

我正在尝试通过AVD连接到服务器。当我连接到真正的服务器时,它工作得很好,但是当我尝试在同一台服务器上但在本地主机上连接时,我有一个响应代码400 定义:由于语法格式错误,服务器无法理解请求。客户端不应该在没有修改的情况下重复请求。) BTW ,我在其他主题上看到了将localhost更改为10.0.2.2。 这是我的代码:

private final String SERVER = "http://10.0.2.2:51502/example/example";

protected String doInBackground(String... strJson ) {
    URL url;
    String response = "";
    try {
        url = new URL(SERVER);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setReadTimeout(15000);
        conn.setConnectTimeout(15000);
        conn.setRequestProperty("Content-Type", "application/json");
        conn.setRequestProperty("Accept", "application/json");
        conn.setRequestMethod("POST");
        conn.setDoInput(true);
        conn.setDoOutput(true);

        OutputStream os = conn.getOutputStream();
        BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(os, "UTF-8"));
        writer.write(strJson[0]);
        writer.flush();
        writer.close();
        os.close();
        int responseCode=conn.getResponseCode();

        if (responseCode == HttpsURLConnection.HTTP_OK) {

            String line;
            BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));

            while ((line=br.readLine()) != null) {
                response+=line;
            }

        }
        else {
            response="PAS DE HTTP_OK : " + responseCode;

        }
        conn.disconnect();
    } catch (MalformedURLException e) {
        response = "malformedURL" + e.toString();
    } catch (ProtocolException e) {
        response = "Protocol" + e.toString();
    } catch (IOException e) {
        response = "IOException" + e.toString();
    } catch (Exception e) {
        e.printStackTrace();
        response = "Exception" + e.toString();
    }

    return response;
}

0 个答案:

没有答案