Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[PROBLEM]WinHttp logowanie


Rekomendowane odpowiedzi

Opublikowano

Witam, jakiś czas temu napisałem bota na nasza-klase jednak był zbyt wolny. Postanowiłem przerobić go z IE.au3 na WinHttp jednak nie znam się na WinHttp, więc już na samym początku podczas logowania pojawił się problem. Tak wygląda kod, który napisałem :

 

#include "WinHttp.au3"
Global $hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1")
Global $hConnect = _WinHttpConnect($hSession, "nk.pl")
Global $sHTML = _WinHttpSimpleRequest($hConnect, "POST", "login", "http://nk.pl/main", "form_name=login_form&target=&login=JakiśLogin&password=JakieśHasło&manual=1")
FileWrite("Test.html",$sHTML)
_WinHttpCloseHandle($hSession)
_WinHttpCloseHandle($hConnect)

 

Zawsze do pliku Test.html wpisuje 0 jedynie gdy zmienie referrer _WinHttpSimpleRequest na nk.pl to pojawia się strona naszej klasy jednak z takim komunikatem:

 

Brak uprawnień (403)

Strona o adresie /login wymaga specjalnych uprawnień, których nie posiadasz.

 

Pomoże mi ktoś z tym?

 

Dodam jeszcze kod z Live HTTP Headers:

https://nk.pl/login

POST /login HTTP/1.1
Host: nk.pl User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://nk.pl/main
Cookie: basic_auth=502d1e1189d97f10a1eee0f2; known_user=0; __utmx=199553969.00025799313539660808:3:1; __utmxx=199553969.00025799313539660808:1344544534:2592000; __utma=199553969.1705075653.1344105648.1344539185.1344544535.24; __utmz=199553969.1344105648.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); lltkck=cDVoZTJ5OHJsMzA2Ymw3OTg1b3JAdzZlbDl6NGVjYzM2Y3I1NTAweXJAMzMwOGIyYmViMmUwM2Q0MWMyMjc5ZWE1NTg1YWQzNDI3MjM2MzBkZQ%3D%3D; sl_checked=1; nk_session=43nTxN29fuu4E%2CQYHP6GxasZnh1; nkd=1119|UCQfG|UCQKM; __utmc=199553969; js_enabled=1; OAS_SC1=1344544534865; nk_window=blured; btab_42240156=%7B%22timestamp%22%3A1344544482568%2C%22window_id%22%3A%22%22%2C%22data%22%3A%7B%22status%22%3A%22OK%22%2C%22code%22%3A1%2C%22content%22%3A%22100%5Cn%22%2C%22mail_id%22%3A%221253847856%22%2C%22unread_count%22%3A%221437%22%7D%7D; __utmb=199553969.0.10.1344544535
Content-Type: application/x-www-form-urlencoded
Content-Length: 72
form_name=login_form&target=&login=JakisLogin&password=JakiesHaslo&manual=1

Opublikowano

@up

a)

Zmiana z http na https nic nie daje.

 

b )

Chodzi Ci o login i hasło, bo nie rozumiem jeżeli tak to normalnie mam tam wpisany swój login oraz hasło, które nie ma polskich znaków.

Opublikowano

; Name...........: _WinHttpConnect

; Description ...: Specifies the initial target server of an HTTP request and returns connection handle to an HTTP session for that initial target.

; Syntax.........: _WinHttpConnect($hSession, $sServerName [, $iServerPort = Default ])

; Parameters ....: $hSession - Valid WinHttp session handle returned by a previous call to WinHttpOpen.

; $sServerName - Host name of an HTTP server.

; $iServerPort - [optional] TCP/IP port on the server to which a connection is made (default is $INTERNET_DEFAULT_PORT)

; Return values .: Success - Returns a valid connection handle to the HTTP session

; Failure - Returns 0 and sets @error:

; |1 - DllCall failed

; Author ........: trancexx

; Modified.......:

; Remarks .......: $iServerPort can be defined via global constants $INTERNET_DEFAULT_PORT, $INTERNET_DEFAULT_HTTP_PORT or $INTERNET_DEFAULT_HTTPS_PORT

 

To miałem na myśli przez https. Inne porty.

 

Poza tym, patrząc na błąd 403 Forbidden:

- albo złe hasło/login

- albo brak jakichś cookies, które powinny tam być ( być może jakiś sid nadawany jest już przez nk.pl - sprawdź czy jakieś SIDopodobne cookies nie są już nadawane tam )

Ta sygnatura jest pusta.

Opublikowano

Problem rozwiązany. Tak wygląda działający kod;

 

#include "WinHttp.au3"
Global $hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1")
Global $hConnect = _WinHttpConnect($hSession, "nk.pl")

Global $Logowanie = _WinHttpSimpleRequest($hConnect, "POST", "login", "http://nk.pl/", "form_name=login_form&target=&login=TutajLogin&password=TutajHaslo&manual=1")
Global $sHTML = _WinHttpSimpleRequest($hConnect, "GET", "main", "http://nk.pl/")
FileWrite("Test.html",$sHTML)

_WinHttpCloseHandle($hSession)
_WinHttpCloseHandle($hConnect)

Opublikowano

Dorzucam swoje 5 zł do tematu bo nie chce mi się nowego zakładać.

Czemu wszystkie funkcje pobierające strone z WinHTTP zawsze mi zwracają zero? Tak jak w powyższym kodzie, w pliku Test.html dostałem tylko 0 :(

 

Ano i _WinHttpOpen też mi zwraca 0 ;/

 

Call WinHttpOpen do winhttp.dll zwraca @error: unknown "return type", cóż mu ten HINTERNET przeszkadza?

Twoja stara robi catch the clowny w Game Makerze.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...