Ich möchte eine Anzeige auf olx.ba mit HttpWebRequest
. Um eine Anzeige zu posten, musste ich mich zuerst anmelden. Daher nahm ich die Cookies aus dieser Anfrage und übermittelte sie an die Anfrage, die die Anzeige posten sollte. Bis jetzt wurde die Anzeige korrekt hochgeladen, aber die Anzeige enthält keine Bilder.Httpwebrequest Text und Bilder hochladen
public void PostProduct(Account account, Product product)
{
// Get login cookies
CookieCollection cookieCollection = GetLoginCookies(account);
request = InitializeRequest(request, "https://www.olx.ba/objava/zavrsi");
// Set the login cookies
foreach (Cookie c in response.Cookies)
{
request.CookieContainer.Add(c);
}
postData = Encoding.ASCII.GetBytes(UrlHelpers.ToQueryString(product));
request.ContentLength = postData.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(postData, 0, postData.Length);
}
response = (HttpWebResponse)request.GetResponse();
// responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
}
Die Website hat eine Form die Bilder für das Hochladen und wenn ich ein Bild auswählen, die Anforderung von dieser Form gemacht dies zu laden:
Anfrage Header
POST /objava/upload?s=RBDQpWEcUu HTTP/1.1
Host: www.olx.ba
Connection: keep-alive
Content-Length: 283041
Pragma: no-cache
Cache-Control: no-cache
Origin: https://www.olx.ba
X-File-Name: 2.jpg
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
Content-Type: multipart/form-data; boundary=---WebKitFormBoundaryAczld5sbjrh0FX5q
Accept: application/json
X-Requested-With: XMLHttpRequest
Referer: https://www.olx.ba/objava
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8,ro;q=0.6,de;q=0.4
Cookie: xxxxx
anfordern Nutzlast
------WebKitFormBoundaryAczld5sbjrh0FX5q
Content-Disposition: form-data; name="myfile"; filename="2.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryAczld5sbjrh0FX5q--
Ich denke, das Upload-Formular ist von dropzone.js, wenn das in irgendeiner Weise hilft. Wie kann ich das schaffen?
Aber wohin schicke ich es? Ich sende es an der gleichen Stelle, wo ich die anderen Daten sende? Die Anzeigeninformationen müssen zu https://www.olx.ba/objava/zavrsi und das Bild zu https://www.olx.ba/objava/upload gehen. Können Sie mir ein Exemplar zur Verfügung stellen? Vielen Dank! – qpBlaze
Senden Sie Daten URL von 2.jpg Bild in Formdaten. Auch wenn alles in Ordnung ist, könnte der Server den ** Content-Type ** stören. Versuchen Sie die Einstellung ** Content-Type **: multipart/form-data; anstelle von image/jpeg. –