我正在使用HttpURLConnection
Java中的对象进行基本的HTTP身份验证。
URL urlUse = new URL(url);
HttpURLConnection conn = null;
conn = (HttpURLConnection) urlUse.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-length", "0");
conn.setUseCaches(false);
conn.setAllowUserInteraction(false);
conn.setConnectTimeout(timeout);
conn.setReadTimeout(timeout);
conn.connect();
if(conn.getResponseCode()==201 || conn.getResponseCode()==200)
{
success = true;
}
我期待一个JSON对象,或者是有效JSON对象格式的字符串数据,或者是带有简单纯文本(即有效JSON)的HTML。HttpURLConnection
返回响应后如何从中访问它?
您可以使用以下方法获取原始数据。顺便说一句,此模式适用于Java6。如果您使用的是Java 7或更高版本,请考虑try-with-
resources模式
。
public String getJSON(String url, int timeout) {
HttpURLConnection c = null;
try {
URL u = new URL(url);
c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setRequestProperty("Content-length", "0");
c.setUseCaches(false);
c.setAllowUserInteraction(false);
c.setConnectTimeout(timeout);
c.setReadTimeout(timeout);
c.connect();
int status = c.getResponseCode();
switch (status) {
case 200:
case 201:
BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line+"\n");
}
br.close();
return sb.toString();
}
} catch (MalformedURLException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} finally {
if (c != null) {
try {
c.disconnect();
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
}
}
}
return null;
}
然后,您可以将返回的字符串与Google Gson一起使用,以将JSON映射到指定类的对象,如下所示:
String data = getJSON("http://localhost/authmanager.php");
AuthMsg msg = new Gson().fromJson(data, AuthMsg.class);
System.out.println(msg);
有一个AuthMsg类的示例:
public class AuthMsg {
private int code;
private String message;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
由http://localhost/authmanager.php返回的JSON
必须如下所示:
{"code":1,"message":"Logged in"}
问候
问题内容: 我无法理解如何使用Visual .NET将JSON字符串解析为c#对象。任务很简单,但是我仍然迷路…我得到了这个字符串: 这是我尝试进行消毒的代码: 我不知道在’<’和’>’之间放置什么,从网上阅读的内容中,我必须为其创建一个新的类。另外,如何获得输出?一个例子会有所帮助! 问题答案: 创建一个可以反序列化您的JSON的新类,例如:
Milo Yip 2016/11/15 本文是《从零开始的 JSON 库教程》的第六个单元解答篇。解答代码位于 json-tutorial/tutorial06_answer。 1. 重构 lept_parse_string() 这个「提取方法」重构练习很简单,只需要把原来调用 lept_set_string 的地方,改为写入参数变量。因此,原来的 lept_parse_string() 和 答案
问题内容: 我收到的JSON对象为: 它打印: 但现在我无法读取其中的任何内容。我如何获得“电子邮件”字段? 谢谢 问题答案: 您应该按照以下方式进行操作: 如果我没错的话。
Milo Yip 2016/10/29 本文是《从零开始的 JSON 库教程》的第六个单元。代码位于 json-tutorial/tutorial06。 本单元内容: JSON 对象 数据结构 重构字符串解析 实现 总结与练习 1. JSON 对象 此单元是本教程最后一个关于 JSON 解析器的部分。JSON 对象和 JSON 数组非常相似,区别包括 JSON 对象以花括号 {}(U+007B、U
我试图向服务器发出POST请求,但我遇到了一个问题。服务器似乎收到了请求,但我仍然在控制台中看到一个错误,建议将主体从Object更改为JSON 错误:SyntaxError:JSON中位于JSON位置0处的意外标记A。在XMLHttpRequest处解析()。装载(http://localhost:4200/vendor.js:69142:51)text:“它是用id=:23保存的新用户”pro
我从accuweather获得了以下带有json的代码 我尝试通过Jackson将此对象解析为POJO 我有json中指定的所有模型,如、数组、,由组成(在json中命名为最小值和最大值)等,它们都有私有字段和公共构造函数、getter和setter。但是我没有一些字段,因为我想省略它们(Day、night、EpochDate、Source)。 当我运行程序时,我得到了错误 com.fasterx