0

我已经在我的手机中创建了一个 Csv 文件(我有这个内容和这个路径)以及发布这个 csv 的 url ...

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

我想用 HttpWebRequest 发布我的文件(只有一个 csv 文件),对于 windows phone,我在 C# 中看到了很多关于 HttpWebRequest 的帖子,而且从来没有特定于 windows Phone(适用于 windows phone 的 HttpWebRequest 没有“正常”的所有方法" HttpWebRequest) 。

我已经看到了 msdn 页面 => http://msdn.microsoft.com/en-us/library/debx8sh9.aspx 以及 c# Upload files with HTTPWebrequest (multipart/form-data)中 HttpWebRequest 的这篇文章但我没有t 来为 windows phone 翻译示例。

我到了打电话给我的服务器(用我的网址)但是,文件永远不会传输......

另外,我不想使用 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 回答