首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过Java应用程序和Chrome的POSTMAN扩展发送POST请求时的不同行为。如何调试并发现错误?

通过Java应用程序和Chrome的POSTMAN扩展发送POST请求时的不同行为。如何调试并发现错误?
EN

Stack Overflow用户
提问于 2014-07-28 09:06:48
回答 1查看 2.3K关注 0票数 0

我正在向Content-Type设置为application/x-www-form-urlencoded的服务器发出POST请求。其中一个查询参数有一个值,其中包含&。在发送请求之前,我将&替换为&

当我使用POSTMAN (Chrome扩展)发送这个请求时,请求就会很好,我会收到预期的响应。但是,当我使用Java应用程序发送此请求时,服务器会抛出一个错误(无法解析文档)。下面是我用来发送请求的代码:

代码语言:javascript
运行
复制
URL url = new URL(url); // url => "http://myserver.com/api/update"

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(60000);
urlConnection.setReadTimeout(60000);
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setDoInput(true);
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

PrintWriter printWriter = new PrintWriter(urlConnection.getOutputStream());
printWriter.print(params); // params => api_key=abcd123&update_data_id=123&update_data_value=Test&Value
printWriter.flush();

InputStream inputStream = urlConnection.getInputStream();
String contentType = urlConnection.getContentType();

FileUtil.closeWriter(printWriter);

// Parse response ...

在这里,问题发生在参数update_data_value中。如果我删除了&,那么无论是邮递员还是我的应用程序,请求都会变得很好。但是当&出现时,只有通过邮递员的请求才能正常工作。

有什么不对的?

非常感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-28 10:58:30

在聊了很长时间之后,问题是:

它是关于一个XML字符串的,其中使用了一个符号。根据,该符号需要替换为"&“。

这个XML字符串需要在POST请求中发送,因此需要转义符号和分号。

最后的替换字符串如下:“%26 The %3B”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24991804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档