python HTTP POST失败,“开始标记之前只允许空白内容”而不是1“

python HTTP POST失败,“开始标记之前只允许空白内容”而不是1“

问题描述:

我正在Python中执行Python客户端HTTPSConnection.request('POST',url,data,headers)。 的数据是b'1502944466046'其是请求主体python HTTP POST失败,“开始标记之前只允许空白内容”而不是1“

调试打印示出了:

发送:b'POST /路径/到/ someresource HTTP/1.1 \ r \ n主机:172.1.2.3 \ r \ nConcept-Encoding:identity \ r \ nContent-Length:13 \ r \ nContent-Type:application/xml; charset = UTF-8 \ r \ nAccept:application/xml \ r \ nAuthorization:Basic encodeduserPwd == \ r \ ñ\ 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的;字符集= UTF-8' 不支持

任何想法如何规避?

问题是您的代码需要XML,但是您要给它的JSON以1开头。您可以将您的请求主体转换为xml格式,然后您可以尝试。

+0

是的,我刚刚成功封装了一个。谢谢。 – labrat43