python HTTP POST失败,"只有在开始标记之前允许的空白内容,而不是1"

时间:2017-08-17 04:54:23

标签: java python xml http-post xstream

我正在python中进行Python客户端HTTPSConnection.request(' POST',url,data,headers)。 数据 b' 1502944466046' 是请求正文

调试打印显示:

发送:b' POST / path / to / someresource HTTP / 1.1 \ r \ nHost:172.1.2.3 \ r \ nAccept-Encoding:identity \ r \ nContent-Length:13 \ r \ nContent-Type: application / xml; charset = UTF-8 \ r \ nAccept:application / xml \ r \ nAuthorization:Basic encodeduserPwd == \ r \ n \ r \ n'

发送:b' 1502944466046'

在Java服务器上,我得到org.xmlpull.v1.XmlPullParserException:在开始标记之前只允许空格内容而不是1(位置:START_DOCUMENT看到1 ... @ 1:1)

POST的数据只是数据'以下变量推导如下:

name = str(int(round(time.time() * 1000))) # time in millisec used
data = name.encode('utf-8')

Java REST控制器有一个方法:

@RequestMapping(value=sameurlaspythonurlabove, method=RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void createMyObject(@RequestBody String name)

由于上述例外,该方法未被命中。

正文不是XML,但我认为服务器试图解析XML,而不是上面的错误。

如果我设置了Content-type =' text / plain',则服务器会给出org.springframework.web.HttpMediaTypeNotSupportedException:内容类型' text / plain; charset = UTF-8'不支持

任何想法如何规避?

1 个答案:

答案 0 :(得分:0)

问题是你的代码期望XML,但是你给的是以1开头的JSON。你可以用xml格式转换你的请求体,然后就可以试试。