0

電話で Csv ファイルを作成し (このコンテンツとパスを持っています)、この csv を投稿するための URL...

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

Windows phone の HttpWebRequest を使用してファイル (1 つの csv ファイルのみ) を投稿したいのですが、C# で HttpWebRequest の投稿をたくさん見ましたが、Windows Phone に固有のものではありません (Windows phone の HttpWebRequest には「通常の」メソッドがすべてありません"HttpWebRequest) .

私はすでに msdn ページ => http://msdn.microsoft.com/en-us/library/debx8sh9.aspx と c# の HttpWebRequest のこの投稿を見ましたHTTPWebrequest (multipart/form-data) でファイルをアップロードしますが、私はしませんWindows phone の例を翻訳するために到着しました。

私は(私の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);

その他は別のフォーラムで見つかりました。私は毎回、サーバーとの呼び出しは良好ですが、ファイルが送信されません...

サーバーでファイルを送信するために HttpWebRequest と Stream を使用するためのソリューションはありますか? 前もって:ありがとう!!

4

1 に答える 1

0

さて、私はこのプロジェクトを見つけました。これは単なるヘルパー クラスであり、非常にシンプルで便利です。

MultipartHttpClient

お役に立てれば

于 2014-01-08T06:27:07.553 に答える