yiisoft / yii2-httpclient

Yii 2 HTTP client
https://www.yiiframework.com
BSD 3-Clause "New" or "Revised" License
430 stars 157 forks source link

Client duplicates the response from the server making it invalid #212

Open likont opened 4 years ago

likont commented 4 years ago

Description

I am sending a request to the API. HTTP Client duplicates the response body. As a result, when accessing the "data" property, I get an exception: "Syntax error".

Example, the object must be of the format: "tid":4828,"dcid":{"x":482222},"paid":true,"error":[]}

But in the HTTP Client response (when using the getContent() method): {"tid":4828,"dcid":{"x":482222},"paid":true,"error":[]}{ "tid": 4828, "dcid": { "x": 482222 }, "paid": true, "error": [] }

I thought it was a vendor problem, but by sending a request through Postman, I received a valid response. (screenshot)

Request Object: https://pastebin.com/kU0kPWnQ Response Object: https://pastebin.com/WCgEik1p Some values have been replaced for safety

What steps will reproduce the problem?

Unfortunately, it is not known exactly. I am using this API, method: https://apirosreestr.ru/api/#Cadaster/Orders

What's expected?

Valid JSON format like: {"tid":4828,"dcid":{"x":482222},"paid":true,"error":[]}

What do you get instead?

Duplicate json that is invalid like: {"tid":4828,"dcid":{"x":482222},"paid":true,"error":[]}{ "tid": 4828, "dcid": { "x": 482222 }, "paid": true, "error": [] }

Additional info

Q A
Yii version 2.0.36
Yii HTTP Client version 2.0.12
PHP version 7.2.27
Operating system CentOS 7
samdark commented 4 years ago

Does that happen for any other URL?

likont commented 4 years ago

Does that happen for any other URL?

Only with this action: https://apirosreestr.ru/api/cadaster/save_order You can see the request object in the first post. Duplicate: https://pastebin.com/kU0kPWnQ

Important: Service support reported that the http client may not respond to the "Connection: close" header

samdark commented 4 years ago

Likely it is so.