http_post_data karşılık ekstra karakterler ekleme

1 Cevap php

Hey Guys ben '5 ae 've '45c' http_post_data kullanırken geçerli verilerle birlikte serpiştirilmiş gibi bazı ekstra karakterleri alıyorum. Ben yolluyorum veriler XML ve böylece yanıttır. Yanıtı XML geçersiz hale şu bu garip karakterler içeriyor. Ben fsockopen kullanıyorsanız bu sorunu yok. Gerçekten bu bazı girdi istiyorum.

1 Cevap

Sorunuz çok ayrıntı vererek değil, fakat (quite a wild guess, but this reminds me of that) Bununla ilgili olabilir Chunked transfer encoding (quoting):

If a Transfer-Encoding header with a value of chunked is specified in an HTTP message, the body of the message is made of an unspecified number of chunks ending with a last, zero-sized, chunk.

Each non-empty chunk starts with the number of octets of the data it embeds (size written in hexadecimal) followed by a CRLF (carriage return and line feed), and the data itself.


The 5ae and 45c you're getting in your data could correspond to the size of each chunk.

HTTP isteklerini by hand göndermeye çalışıyorsanız, bu böyle iyi bir fikir olabilir: HTTP gibi kolay bir protokol değildir, ve sizin için sıkıntılar ile bu tür ilgileneceğiz zaten varolan kitaplıkları kullanmanız gerekir sen.

Örneğin, curl bakmak olabilir - bkz curl_setopt olası seçenekler etkileyici listesi için.


Edit : I realize that
http_post_data is a function provided by the PECL http extension.

Chunked verileri çözmek için, bu kütüphanede, ilginizi çekebilecek bir işlevi var: http_chunked_decode