我正在使用HttpUrlConnection來使用REST服務。當我做GET時,就像我在下面顯示的那樣,我不想獲取char返回的信息。我想以返回的格式得到結果。在這裏,例如,我想要一個布爾值,而不是像System.out.print((char) ch);
。我怎樣才能收到它?HttpURLConnection - 返回格式
我知道我可以將字符串解析爲布爾類型,但是如果我接收到另一種數據類型?
public class SensorGetDoorStatus {
public static void main(String[] args) throws Exception
{
HttpURLConnection urlConnection = null;
try {
String webPage = "http://localhost:8080/LULServices/webresources/services.sensors/doorstatus";
String name = "xxxx";
String password = "xxxx";
Authenticator myAuth = new Authenticator()
{
final String USERNAME = "xxxx";
final String PASSWORD = "xxxxx";
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(USERNAME, PASSWORD.toCharArray());
}
};
Authenticator.setDefault(myAuth);
String authString = name + ":" + password;
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);
URL urlToRequest = new URL(webPage);
urlConnection = (HttpURLConnection) urlToRequest.openConnection();
urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
System.out.println("Authorization : Basic " + authStringEnc);
urlConnection.setRequestMethod("GET");
urlConnection.setRequestProperty("Accept", "application/json");
urlConnection.setReadTimeout(15*1000);
urlConnection.connect();
InputStream inStrm = urlConnection.getInputStream();
int ch;
while (((ch = inStrm.read()) != -1))
System.out.print((char) ch);
inStrm.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
System.out.println("Failure processing URL");
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
}
}
}
你可以玩弄'的InputStream inStrm' – Abubakkar 2013-03-27 11:55:17
看看[本SO接聽](http://stackoverflow.com/questions/10500775/parse -json從 - HttpURLConnection的對象/ 10501619#10501619)。 – 2013-03-27 12:07:56