2017-10-14 15 views
0

HttpWebRequest을 사용하여 olx.ba에 광고를 게시하고 싶습니다. 광고를 게시하려면 먼저 로그인해야하므로 요청에서 쿠키를 가져 와서 광고를 게시하는 요청에 전달했습니다. 지금까지는 광고가 올바르게 게재되었지만 광고에는 이미지가 없습니다.Httpwebrequest 업로드 텍스트 및 이미지

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(); 
    } 

웹 사이트는 이미지를 업로드 양식을 가지고 있으며, 내가 업로드 할 이미지를 선택하면이 그 형태에 의해 요청입니다 :

요청 헤더

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 

요청 페이로드

------WebKitFormBoundaryAczld5sbjrh0FX5q 
Content-Disposition: form-data; name="myfile"; filename="2.jpg" 
Content-Type: image/jpeg 


------WebKitFormBoundaryAczld5sbjrh0FX5q-- 

업로드 양식이 dropzone.js에서 온 것 같아요. 이 작품을 어떻게 만들 수 있습니까?

답변

1

이미지를 경로로로드하기 전에. 이미지를 바이트 배열로 변환 한 다음 Convert.toBase64String 메서드를 사용하여 base64String으로 변환합니다. 그런 다음 base64 문자열을 웹 사이트에 게시하십시오.

감사합니다.

+0

하지만 어디로 보내야합니까? 나는 다른 곳으로 보내는 동일한 장소에서 그것을 보낸다? 광고 세부 정보는 https://www.olx.ba/objava/zavrsi로 이동하고 이미지는 https://www.olx.ba/objava/upload로 이동해야합니다. 예를 들어 줄 수 있어요? 고맙습니다! – qpBlaze

+0

2.jpg 이미지의 데이터 URL을 formdata로 보냅니다. 또한 모든 것이 잘된다면 서버를 괴롭히는 유일한 것은 ** Content-Type ** 일 것입니다. ** Content-Type ** : multipart/form-data를 설정하십시오. image/jpeg 대신에. –