Odeslání souboru XML obsahuje gpg podpisu s PHP + cURL

hlasů
2

Mám soubor xml a podpis GPG je v tom, v <SIGNATURE>tagu.

Zde je xml:

$xml = <DATA>
 ....
  <SIGNATURE>-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx

-----END PGP SIGNATURE-----
  </SIGNATURE>
</DATA>;

Když jsem se poslat tuto xml s perl je reagovat je v pořádku a vzdálený server akceptuje podpis.

Ale kdybych vám pošleme xml s php a lokny, vzdálený server bude odmítnout podpis.

Následující moduly jsou použity v perl skriptu: use URI (); use GnuPG qw( :algo ); use LWP::UserAgent (); use IO::Socket::SSL;

Další možnosti Curl jsou nastaveny v php skript:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER  ,1);

Myslím, že je problém s oblouček .... Pravděpodobně curl nastavení minul, ale nevím, který. Snažil jsem se urlencode, qoutemetaPHP funkce pro $xmlřetězce, ale žádné výsledky.

Položena 11/11/2011 v 11:58
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Přidat možnost uživatelského agenta.
curl_setopt ($ ch, CURLOPT_USERAGENT, "Mozilla / 5.0 (Macintosh; U; Intel Mac OS X 10.5, en-US; rv: 1.9.0.1) Gecko / 2008070206 Firefox / 3.0.1");
curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_POST, 1);
curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ xml);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1);

Odpovězeno 27/11/2011 v 12:25
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more