我使用下面的代码发出http请求,但当抛出异常时,我无法获取每个字段的错误消息。在postman中,它确实显示了正确的错误消息:
HttpsURLConnection con = (HttpsURLConnection) new URL(url).openConnection();
con.setSSLSocketFactory(sc.getSocketFactory());
con.setDoOutput(true);
con.setRequestProperty("Authorization","Basic KEY")
con.setRequestProperty("Content-Length", Integer.toString(data.length()));
try {
con.getOutputStream().write(data.getBytes("UTF-8"));
final BufferedReader rd = new BufferedReader(new InputStreamReader(con.getInputStream()));
stringBuffer = new StringBuffer();
while ((line = rd.readLine()) != null) {
stringBuffer.append(line);
}
rd.close();
}catch(Exception e){
println stringBuffer.toString()
throw new Exception("Some error occurred " + e.message)
}
它只是显示消息“服务器返回的HTTP响应代码:422表示URL:https://test.api.promisepay.com/users/35
”
然而,在《邮递员》中,它显示:
{
"errors": {
"mobile": [
"already exists"
]
}
}
您不能使用输入流读取错误,而应该使用错误流。
下面是一个示例片段:
将数据写入输出流后,您应该检查返回了什么响应代码:
int respCode=con.getResponseCode();
然后检查返回的响应代码是否为200,如果不是,则表示出现了一些错误:
InputStream is=null;
if(respCode==200){
is = con.getInputStream();
} else if (urlConnection.getErrorStream() != null) {
is = con.getErrorStream();
}
现在您可以更改读取错误的代码:
final BufferedReader rd = new BufferedReader(new
InputStreamReader(is));
stringBuffer = new StringBuffer();
while ((line = rd.readLine()) != null) {
stringBuffer.append(line);
}
rd.close();
希望这可能会有所帮助!
问题内容: 我有一段这样的代码 当我输入的查询超过一个词,例如“狗”时,出现以下错误。 谁能指出我做错了什么?提前致谢。 问题答案: “狗”返回400错误的原因是因为您没有转义URL的字符串。 如果您这样做: 会的。 但是,我强烈建议您使用请求,而不要使用urllib / urllib2 / httplib。这要容易得多,它将为您处理所有这一切。 这是与python请求相同的代码:
我已经按照文档中关于生成JWT令牌的所有说明进行了操作,但只接收“坏请求”作为响应。。。 当我尝试运行eg-01-php-jwt时,也会发生同样的情况。我正在使用DocuSign演示环境,并使用Postman和curl模拟请求 我正在做的步骤是: 将授权uri生成为https://account-d.docusign.com/oauth/auth?response_type=code 我的(更新的
问题内容: 我正在使用ckeditor格式化我的内部一些数据 现在,当我尝试使用这种方式发布数据时, 我得到错误 HTTP错误414。请求URL太长。 我在这里遇到错误:http : //iranfairco.com/example/errorLongUrl.aspx 尝试单击该页面左下方的“ 编辑文本” 按钮。 为什么会这样呢?我该如何解决? 问题答案: 根据这个问题,URL的最大实际长度是20
这里是android开发新手。我正在尝试将一个.gpx文件发布到我的web数据库中。但是,我收到http响应错误415。我知道415意味着不正确的内容类型,我尝试使用的API有这段代码…谢谢你的提示! 这是我的Http请求类 这是我的活动 这是我从httpbin得到的响应 /*I/system.out:服务器回复: I/system.out:{ I/system.out:“args”:{}, i/
我是新来的。我正在创建注册功能,但当我发布请求时,它给我的错误是:“发布有效请求”。请你检查一下我的代码,告诉我我做错了什么。 服务 注册组件 注册HTML 用户界面
我正试图通过新的Java11HttpClient取消http请求。 这是我的测试代码: 我预计,该请求任务将在 行调用后立即被取消。因此,控制台中最后打印的行应该是 但是,当我运行这段代码时,我看到类似这样的内容: 这意味着,在我取消请求后,请求任务仍在运行…所以,这是取消请求的正确方法吗? UPD 取消请求的正确方法是(正如daniel所建议的,UPD2:在方法调用中避免NPE):