2012-04-16 3 views
0

나는 ...이 CSV를 게시하기를 CSV 내 휴대 전화에서 파일 (나는이 내용이 경로가)하고, URL을 만들도록HttpWebRequest를 Windows Phone 용 다중/폼 데이터 파일 보내기

string path = csv.path; 
string content = csv.content; 
string urlPost = csv.urlPost; 

HttpWebRequest와 함께 내 파일 (단지 하나의 csv 파일)을 게시하고 싶습니다. Windows 전화의 경우, C#의 HttpWebRequest에 대한 게시물을 많이 보았고 Windows 전화에 특정한 적이 없었습니다. Windows 전화의 경우 HttpWebRequest는 "normal "HttpWebRequest).

나는 이미 MSDN 페이지 => http://msdn.microsoft.com/en-us/library/debx8sh9.aspx 및 C# Upload files with HTTPWebrequest (multipart/form-data)에서 HttpWebRequest를위한이 게시물을보고있다 그러나 나는 Windows Phone 용 예제를 번역하는 도착하지 않습니다.

나는 또한 내가 RestSharp 라이브러리를 사용하지 않으려는 ... 파일이 전송되지 않습니다,

(내 URL로) 내 서버라고하는 도착하지만.

내 실제로 코드 =>

public void SentPostReport() 
    { 

     Uri uri = new Uri(csv.urlPost); //Url is string url 

     string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x"); 

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); 
     request.ContentType = "multipart/form-data; boundary=" + boundary; 
     request.Method = "POST"; 

     request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request); 

    } 



    private void GetRequestStreamCallback(IAsyncResult asynchronousResult) 
    { 
     HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; 

     // End the operation 
     Stream postStream = request.EndGetRequestStream(asynchronousResult); 

     // My File content and path. 
     string pathReportFile = csv.path; 
     string CsvContent = csv.content; 


     // Transmitted The File ???? 

     postStream.Close(); 

     // Start the asynchronous operation to get the response 
     request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request); 
    } 


    private static void GetResponseCallback(IAsyncResult asynchronousResult) 
    { 
     HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; 

     // End the operation 
     HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult); 
     Stream streamResponse = response.GetResponseStream(); 
     StreamReader streamRead = new StreamReader(streamResponse); 
     string responseString = streamRead.ReadLine(); 
      //DEBUG => affiche le résultat de la requête. 
      Debug.WriteLine(responseString); 
     // Close the stream object 
     streamResponse.Close(); 
     streamRead.Close(); 

     // Release the HttpWebResponse 
     response.Close(); 
    } 

나는 GetRequestStreamCallback의 기능 내 코드를 삭제, 그리고에 의해 대체 "// 전송 된 파일?"

을 나는 그것이 내가 보낼 수있는 곳이라고 생각 내 파일,하지만 나는 이것을 전송할 해결책을 찾지 못한다.

나는이 코드를 테스트 한 : 나는 모든 시간

byte[] byteArray = Encoding.UTF8.GetBytes(CsvContent); 
postStream.Write(byteArray, 0, byteArray.Length); 

및 기타 다른 포럼에서 발견하고, ...

내 서버와 TEH 호출은 좋지만, 파일이 전송되지 않습니다

내 서버에서 내 파일을 보내려면 HttpWebRequest 및 Stream을 사용하는 솔루션이 있습니까? 사전에 : 감사합니다 !!

답변

0

음, 방금이 프로젝트를 찾았습니다. 단 하나의 도우미 클래스이며, 매우 간단하고 도움이됩니다.

MultipartHttpClient

희망이

을하는 데 도움이
관련 문제