阅读状态代码

时间:2012-07-25 09:10:23

标签: java android

conn = (HttpURLConnection) connectURL.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.connect();
int code = conn.getResponseCode();

我已成功建立连接。我试图通过互联网传递信息。当通过浏览器打开网址时,我得到的回复是

{"status":"0","responseCode":"1001","response":"Wrong Settings."}

正确状态返回为1。

是否有任何方法我只能获得状态。我一直在尝试以下方法,但每当我通过浏览器手动验证时,我每次获取代码(下面是代码片段)为-1,不管状态代码如何< / p>

3 个答案:

答案 0 :(得分:0)

这是一个JSON文本。您将需要使用JSON库。

答案 1 :(得分:0)

int code = conn.getResponseCode();

此方法返回http状态代码,http状态代码见

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

而您要检索的响应代码实际上是服务器返回的响应字符串。 阅读此用法:

 try {
     InputStream in = new BufferedInputStream(conn.getInputStream());

     readStream(in);//method to read characters from stream.
    finally {
     urlConnection.disconnect();
   }
 }

答案 2 :(得分:0)

您可以在连接中添加以下代码来获取响应字符串。

  OutputStream connectionOutput = null;
connectionOutput=connection.getOutputStream();
            connectionOutput.write(requestJson.toString().getBytes());
            connectionOutput.flush();
            connectionOutput.close();

            inputStream = new BufferedInputStream(connection.getInputStream());

            ByteArrayOutputStream dataCache = new ByteArrayOutputStream();

            // Fully read data
            byte[] buff = new byte[1024];
            int len;
            while ((len = inputStream.read(buff)) >= 0) {
                dataCache.write(buff, 0, len);
            }

            // Close streams
            dataCache.close();

现在获取json的Response字符串,如下所示。

String jsonString = new String(dataCache.toByteArray()).trim();
JSONObject mJsonobject=new JSONObject(jsonString);

您现在可以从此mJsonobject对象解析密钥。