aliyun / aliyun-oss-cpp-sdk

Aliyun OSS SDK for C++
Other
184 stars 88 forks source link

XML_ERROR_MISMATCHED_ELEMENT #99

Open elesos opened 3 years ago

elesos commented 3 years ago

std::shared_ptrstd::iostream content = std::make_sharedstd::fstream("D:\test_files\c6252446d568221ed2a78db44988d9c1.txt", std::ios::in | std::ios::binary);

报:PutObject fail:code:[ParseXMLError:16],message:[XML_ERROR_MISMATCHED_ELEMENT],requestId: 中括号里面是outcome.error().Code() 和outcome.error().Message()的输出。 请问是什么原因?

huiguangjun commented 3 years ago

返回的错误报文 的 body 格式不正确,不是期望的 xml 结构。 可能是请求经过了代理/或者被劫持,返回了其它内容。

可以这样排查: 1)如果请求使用的是http协议,可以切换成https,具体做法为 设置endpoint时,写成 https://oss-cn-xxx.aliyuncs.com 2)可以通过wireshark 或者 tcpdump抓一下数据包,查看返回的报文内容。 3)也可以打开 debug 日志,通过日志查看一下 http 响应头的内容,具体做法为 set OSS_SDK_LOG_LEVEL=debug 或者 export OSS_SDK_LOG_LEVEL = debug