2012-04-16 8 views
0

ためHttpWebRequestの...私は自分の携帯電話にファイル(私はこのコンテンツとこのパスを持っている)と、このCSVを投稿するURL CSVを作成しているWindowsの携帯電話

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

をマルチパート/フォームデータを含むファイルを送ります私はHttpWebRequestでHttpWebRequestを使って自分のファイル(ちょうど1つのcsvファイル)をポストしたいと思っています.HttpWebRequest for C#のポストをたくさん見ました.Windows PhoneのHttpWebRequestには決して特定できません。 "HttpWebRequest)。

私はすでにC#のUpload files with HTTPWebrequest (multipart/form-data)にMSDNのページ=>http://msdn.microsoft.com/en-us/library/debx8sh9.aspx とHttpWebRequestのため、この記事を見てきた。しかし、私はWindowsの携帯電話の例を翻訳するために到着しません。

私は(私のURLを使用して)私のサーバーと呼ばれるために到着したが、ファイルが...

を送信されることはありません。また、私はRestSharpライブラリを使用したくありません。

私の実際のコード=>

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

が、これは

を役に立てば幸い
関連する問題