java - HttpURLConnection - 返回格式

标签 java web-services rest httpurlconnection type-conversion

我正在使用 HttpUrlConnection 来使用 REST 服务。当我执行 GET 时,就像下面显示的那样,我不想获取逐个字符返回的信息。我想以返回的格式获得结果。例如,在这里,我想获得一个 boolean 值,而不是类似 System.out.print((char) ch); 的东西。我怎样才能收到它?

我知道我可以将字符串解析为 boolean 类型,但是如果我收到其他数据类型怎么办?

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();
    }
}
 }

}

最佳答案

我会玩 BufferedReader :它允许逐行读取 InputStream,并且您也许能够以这种方式解析数据。

如果您的数据采用 XML 或 JSON 等预定义格式,那么您最好使用库来解析您的响应数据。

关于java - HttpURLConnection - 返回格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15658146/

相关文章:

java - 使用 httpclient 将数据发布到 servlet

ios - 使用核心 api 上传 DropBox 文件 https ://api-content. dropbox.com/1/files/<root>/<path>

Spring Boot @RestController,发现不明确的映射

android - 将 Android Web 服务连接到本地主机

c# - 使用 Azure 服务总线终结点在本地 WCF 服务中进行 Windows 模拟

rest - 当前用于验证 Http 请求(REST、Xml over Http)的标准是什么?

java - Spring MVC Web 服务 GET (Rest) 调用 : 404

java - 如何检查字符串的最后一个字符是否是特定字符

java - 尝试使用 headless chromedriver 选项时,Selenium 找不到 WebElements

java - 依赖注入(inject) Java 设计模式单例