Я пытаюсь отправить фото через XML_RPC как это:Revive Adserver XML_RPC Отправка изображения Содержимое
$data = array(
'phpads55deb65dd5ca45.43027895',
'aImage' => array(
'filename' => $file['aImage']['name'],
'content' => file_get_contents($file['aImage']['tmp_name']),
),
'campaignId' => 1,
'storageType' => 'web'
);
$this->client = new Client('http://example.com/api/v2/xmlrpc/');
$this->client->call('ox.addBanner', $data);
я получаю запрос через Скрипач ведьмой показывает это:
POST http://example.com/api/v2/xmlrpc/ HTTP/1.1
Host: example.com
Connection: close
Accept-Encoding: gzip, deflate
Content-Type: text/xml; charset=utf-8
Content-Length: 771
Accept: text/xml
User-Agent: Zend_XmlRpc_Client
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>ox.addBanner</methodName>
<params>
<param>
<value>
<string>phpads55deb65dd5ca45.43027895</string>
</value>
</param>
<param>
<value>
<struct>
<member><name>campaignId</name><value><int>1</int></value></member>
<member>
<name>bannerName</name>
<value>
<string>khgjjhj</string>
</value>
</member>
<member>
<name>aImage</name>
<value>
<struct>
<member>
<name>filename</name>
<value>
<string>logo.png</string>
</value>
</member>
<member>
<name>content</name>
<value>
<string>�PNG </string>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>comments</name>
<value>
<string>dfgdgdfgdfg</string>
</value>
</member>
<member>
<name>storageType</name>
<value>
<string>web</string>
</value>
</member>
</struct>
</value>
</param>
</params></methodCall>
И, как вы можете видеть, полного изображения нет в запросе. В чем проблема? Я тестировал fread
вместо file_get_content
, но нет никакой разницы. XML Parser отправляет эту ошибку:
Я испытал это слишком. Не работал! Проблема в том, что удаленный сервер не использует base64. А о встраивании двоичного содержимого вы достаточно корректны. – Abadis
@Abadis Вы имеете в виду, что вы не можете кодировать строку? Или почему это не сработало? – Wilt
Удаленный сервер - Revive Adserver. Я хочу найти, есть ли другие кодировки, которые я не тестировал, или если sth является wronge в моих кодах. Вы можете найти его здесь: http://www.revive-adserver.com/ – Abadis