Я использую restsharp в vb.net для подготовки программы для входа на сайт (первая часть) и загрузки файлов (вторая часть). Код хорош в первой части, но он не работает во второй части. Код показан ниже:
1st Part:
Dim client = New RestClient("https://example.com")
client.CookieContainer = New System.Net.CookieContainer()
client.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
client.ClientCertificates = New X509CertificateCollection
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Dim Request_Login = New RestRequest("/loginProcess", Method.POST)
Request_Login.RequestFormat = DataFormat.Json
Request_Login.AddHeader("Accept", "application/json, text/javascript, */*; q=0.01")
Request_Login.AddParameter("loginName", "ABC")
Request_Login.AddParameter("loginPwd", "Hello")
Dim Response_Login As IRestResponse = client.Execute(Request_Login)
For Each cookie In Response_Login.Cookies
Request_Login.AddCookie(cookie.Name, cookie.Value)
Next
Console.WriteLine(Response_Login.Content)
2nd part:
Dim Request_Image As New RestRequest(Method.GET)
Request_Image.Resource = "/getImage?imageId=abcdefghijkmnopq123" & "&pageNo=1"
Request_Image.AddHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
Request_Image.AddHeader("Accept-encoding", "gzip, deflate, br")
Dim SAVE_Path = "D:\"
Dim Response_Image As IRestResponse = client.Execute(Request_Image)
client.DownloadData(Request_Image).SaveAs(SAVE_Path & "\1") ' & ".jpg")
Console.WriteLine(Response_Image.Content)
1-й и 2-й коды непрерывны. При запуске 2-й части требуется вход в систему в соответствии с Fiddler (даже получить успех из 1-й части), но кажется, что вход в систему не работает в этой части. Вторая часть перенаправлена на страницу входа. И файл не может быть загружен.
Я пытался использовать client.FollowRedirects = False
, но все еще не работает. Я предполагаю, что аккаунт вышел из системы во время выполнения второй части.
Может ли кто-нибудь помочь мне исправить это, пожалуйста? Извините за мой плохой английский!
POST https://example.com/loginProcess HTTP/1.1
Accept: application/json, text/javascript, */*; q=0.01
Authorization: Basic ZGFyazRqX2lnbm9yYW5jZUBob3RtYWlsLmNvbTpXZWxjb21lMTE4
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Host: example.com
Content-Length: 60
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
loginName=ABC&loginPwd=Hello