Wpis z mikrobloga

#programowanie #webdev #pytanie
Mirki, zaraz mnie coś...
Chciałbym sobie zrobić prostą apkę do ściągania ofert wycieczek z rainbow.
W postmanie request jest mega prosty:
POST, url: https://rpl-api.r.pl/szukaj/api/wyszukaj
ustawiam niżej Body na raw i wklejam najprostsze parametry, np:

{"CenaMax":"3500","CenaMin":"2000","Paginacja":{"IloscDoPobrania":"18","Przeczytane":"0"},"TerminWyjazduMax":"2019-08-18","TerminWyjazduMin":"2019-08-07"}
no i śmiga zajebiście i zawsze bez problemu. Teraz kurła trzeba to powtórzyć w PHP. No to curlem mam:

$rawdataHardcoded = {"CenaMax":"3500","CenaMin":"2000","Paginacja":{"IloscDoPobrania":"18","Przeczytane":"0"},"TerminWyjazduMax":"2019-08-18","TerminWyjazduMin":"2019-08-07"};
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '[https://rpl-api.r.pl/szukaj/api/wyszukaj');](https://rpl-api.r.pl/szukaj/api/wyszukaj');)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $rawdataHardcoded);
$result = curl_ exec ($ch);
echo $result;

I #!$%@? zawsze null. Próbowałem na 10 sposobów zmieniać parametry i nie mam zielonego pojęcia co poszło nie tak...

PS: musiałem rozdzielić curl i exec bo wypok nie pozwoli dodać posta :D
  • 17
  • Odpowiedz
@l-_-l: próbowałem wcześniej, ale spróbowałem jeszcze raz teraz i niestety dalej pusta odp. tym kodem:

$ch = curl_init('[https://rpl-api.r.pl/szukaj/api/wyszukaj');](https://rpl-api.r.pl/szukaj/api/wyszukaj');)
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $rawdataHardcoded);
curl_setopt($ch,
  • Odpowiedz
ale wykop masakruje ten kod albo ja nie umiem into. znów musiałem dać spację po curl_exec bo wykop myśli że hakuję stronę:D
  • Odpowiedz
@TwojStaryToKorniszon: nigdy nie było problemów, z kilkoma innymi na https się bez problemu łączy, tak samo postman. próbowałem dodać flagę curlsetopt($ch, CURLOPTSSL_VERIFYPEER, false); ale zmienia to nie wiele... szukam dalej :/
  • Odpowiedz
@dom3lek: generalnie to jest ich usługa do której normalnie strzela frontend szukając ofert. zwraca fajnego jsona z którego moża sobie czerpać co trzeba. myślałem że w jedno popołudnie napiszę jakiś prosty skrypt który ułatwi szukanie wakacji a tu utknąłem na takim badziewiu...
w pierwszym poście napisałem wszystko co wystarczy wpisać w postmana by dostać jakieś oferty. jak dla mnie to kwestia przekazania parametrów. może curl nie umie jako czyste RAW?
  • Odpowiedz
@mazaq1: $rawdataHardcoded = array ("CenaMax":"3500","CenaMin":"2000","Paginacja":{"IloscDoPobrania":"18","Przeczytane":"0"},"TerminWyjazduMax":"2019-08-18","TerminWyjazduMin":"2019-08-07");

Probowales tak?
  • Odpowiedz
@dom3lek: nie no, ten string jest dobry i testowany w postmanie, musi być taki, poza tym chyba tak się nie inicjuje arraya w php?
@l-_-l: postman ma useragenta postman albo w ogóle nie daje i wszystko śmiga. próbuję setki rzeczy ale coś muszę fundamentalnie robić nie tak.
choć w sumie.. może to faktycznie coś z certyfikatami. Bo przez filegetcontents nie chciało ściągać przez brak certyfikatu, dlatego
  • Odpowiedz
{"CenaMax":"3500","CenaMin":"2000","Paginacja":{"IloscDoPobrania":"18","Przeczytane":"0"},"TerminWyjazduMax":"2019-08-18","TerminWyjazduMin":"2019-08-07"}


@Zaszczyk: dzięki! pomogłeś mi ogarnąć problem. po sznurku odkryłem że wersja OpenSSL za stara, podwyższyłęm wersję PHP i śmiga ;)
tamat zamykam :D
  • Odpowiedz