我正在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'不支持
任何想法如何规避?
答案 0 :(得分:0)
问题是你的代码期望XML,但是你给的是以1开头的JSON。你可以用xml格式转换你的请求体,然后就可以试试。