我在手机中创建了一个Csv文件(我有这个内容和这条路径),并且发布这个csv的网址...
string path = csv.path;
string content = csv.content;
string urlPost = csv.urlPost;
我想用HttpWebRequest发布我的文件(只有一个csv文件),对于Windows手机,我在C#中看到很多关于HttpWebRequest的帖子,而且从来没有特定于Windows Phone(HttpWebRequest for windows phone没有所有方法) “正常”的HttpWebRequest)。
我已经看过msdn page => http://msdn.microsoft.com/en-us/library/debx8sh9.aspx 这篇关于HttpWebRequest的帖子在c#Upload files with HTTPWebrequest (multipart/form-data)但是我没有到达翻译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);
和其他发现在不同的论坛,我每次都用我的服务器打电话是好的,但文件没有传输...
您是否有使用HttpWebRequest和Stream的解决方案在我的服务器中发送我的文件? 提前:谢谢!!