Od paru godzin walczę z dodaniem wpisu na pinger.pl przy użyciu CURLa.

Dodanie samego wpisu nie stanowi większego problemu, ale pojawia się spory problem z kodowaniem UTF-8.

Znalazłem prosty program windowsowy do dodawania wpisów na pingera i jemu się udaje, ale wysyła dane jako multipart/form-data w wielu żądaniach.
  1. POST /auth_add_message.xml HTTP/1.1
  2. Content-Type: multipart/form-data; boundary=----------------------------
  3. Host: a.pinger.pl
  4. Content-Length: 385
  5. Expect: 100-continue
  6. Connection: Close
  7.  
  8. HTTP/1.1 100 Continue
  9.  
  10.  
  11. ------------------------------
  12. Content-Disposition: form-data; name="text";
  13.  
  14. [url="http://www.yafud.pl/324/"]http://www.yafud.pl/324/[/url] Dostałam przez pomyłkę SMS-a od mojej matki, przeznaczonego dla mojego ojczyma: \"Młoda zostaje na noc u koleżanki. Zrobimy to w jej pokoju?\" YAFUD
  15. ------------------------------
  16. Content-Disposition: form-data; name="show_at_main";
  17.  
  18. 0
  19. ------------------------------
  20.  



Moje żądanie wysyłane z poziomu CURLa wygląda tak:

  1. POST /auth_add_message.xml HTTP/1.1
  2.  
  3. User-Agent: Pinger PHP API
  4.  
  5. Host: a.pinger.pl
  6.  
  7. Accept: */*
  8.  
  9. Authorization: Basic Y2h5YmEgc2UgamFqYSByb2Jpc3ogOik=
  10.  
  11. Content-Length: 328
  12.  
  13. Content-Type: application/x-www-form-urlencoded
  14.  
  15.  
  16.  
  17. text=http%3A%2F%2Fwww.yafud.pl%2F324%2F+Dosta%B3am+przez+pomy%B3k%EA+SMS-a+od+mojej+matki%2C+przeznaczonego+dla+mojego+ojczyma%3A+%22M%B3oda+zostaje+na+noc+u+kole%BFanki.+Zrobimy+to+w+jej+pokoju%3F%22+YAFUD&show_at_main=0&tags=%23wpadka%2C%23rozrywka%2C%23lol%2C%23autentyki%2C%23rotfl%2C%23humor%2C%23wtopa%2C%23yafud%2C%23fail
  18.  


Efekty działania obu żądań widoczne są na http://test321.pinger.pl/.

Widać, że w przypadku CURL kodowanie się spsuło.

Może ktoś z forumowiczów wie jak rozwiązać ten problem ? Interesuje mnie jakiekolwiek rozwiązanie dające się uzyskać w oparciu o CURLA.



--------------------------------------------------------------------------------------------------------------------------------------------
EDIT:

Udało mi się znaleźć sposób na multipart/form-data; Wklejam tutaj rozwiązanie na wypadek gdyby ktoś inny tego szukał.

  1. $sHeaders = array ("Content-Type" => "multipart/form-data; boundary=----------------------------");
  2. curl_setopt($this->_stream, CURLOPT_HTTPHEADER, $sHeaders);
  3. curl_setopt($this->_stream, CURLOPT_USERAGENT, $this -> _useragent);
  4. $tags = "#wpadka,#rozrywka,#lol,#autentyki,#rotfl,#humor,#wtopa,#yafud,#fail";
  5. $submitdata = "";
  6. $submitdata .= "------------------------------\r\n";
  7. $submitdata .= "Content-Disposition: form-data; name=\"text\"\r\n\r\n";
  8. $submitdata .= $strMessage;
  9. $submitdata .= "\r\n------------------------------\r\n";
  10. $submitdata .= "Content-Disposition: form-data; name=\"show_at_main\"\r\n\r\n";
  11. $submitdata .= "0";
  12. $submitdata .= "\r\n------------------------------\r\n";
  13. $submitdata .= "Content-Disposition: form-data; name=\"tags\"\r\n\r\n";
  14. $submitdata .= $tags;
  15. $submitdata .= "\r\n------------------------------\r\n";
  16.  
  17. curl_setopt($this->_stream, CURLOPT_POST ,1);
  18. curl_setopt($this->_stream, CURLOPT_POSTFIELDS ,$submitdata);
  19. curl_setopt($this->_stream, CURLOPT_RETURNTRANSFER, 1);
  20. return curl_exec($this->_stream);
  21.  


mam nadzieje ze komuś się przyda