private void uploadweb_Click(object sender, RoutedEventArgs e)
{
// string url = "ftp://172.16.149.28:80";
string url = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";
// string url = "http://www.oschina.net/wp7";
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream sendingZipStream = new IsolatedStorageFileStream("myFile.txt", FileMode.Open, isf))
{
try
{
// 要上传的文件
bSendingFile = new byte[sendingZipStream.Length];
sendingZipStream.Read(bSendingFile, 0, bSendingFile.Length);
HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(new Uri(url, UriKind.Absolute));
httpReq.Method = "POST";
//httpReq.ContentType = "multipart/form-data;";
httpReq.ContentType = "Text/html";
// httpReq.BeginGetResponse(WebResponseCallback, httpReq);
IAsyncResult asyncResult = httpReq.BeginGetRequestStream(new AsyncCallback(RequestStreamCallback), httpReq);
} catch (Exception ex)
{
String strError = ex.ToString();
MessageBox.Show("获取失败");
}
}
}
}
/// <summary>
/// 返回用于将数据写入Stream,写入数据,并发送
/// </summary>
/// <param name="result"></param>
private void RequestStreamCallback(IAsyncResult result)
{
HttpWebRequest request = result.AsyncState as HttpWebRequest;
// 返回用于将数据写入某 URI 资源的 Stream
Stream requestStream = request.EndGetRequestStream(result);
requestStream.Write(bSendingFile, 0, bSendingFile.Length);
requestStream.Flush();
requestStream.Close();
request.BeginGetResponse(new AsyncCallback(ResponseCallback), request);
}
/// <summary>
/// 获取最终的返回结果
/// </summary>
/// <param name="result"></param> private void ResponseCallback(IAsyncResult result)
{
try
{
HttpWebRequest request = (HttpWebRequest)(result.AsyncState);
StreamReader response = new StreamReader(request.EndGetResponse(result).GetResponseStream());
string data = response.ReadToEnd(); //将Stream转为String
data = data.Substring(0, 1024);//只获取前1024个字符。
Dispatcher.BeginInvoke(() => //传给主线程结果
{
MessageBox.Show(data);
});
}
catch
{
Dispatcher.BeginInvoke(() => //传给主线程结果
{
MessageBox.Show("获取失败");
});
}
}程序代码如上,我想知道为什么 使用string url = "http://www.oschina.net/wp7";时可以返回信息
但换一个网址就不行?就一直提示“获取失败”。
例如我想 string url = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";
应该要怎么设置?求高手解答下,我刚学习这方面内容
{
// string url = "ftp://172.16.149.28:80";
string url = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";
// string url = "http://www.oschina.net/wp7";
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream sendingZipStream = new IsolatedStorageFileStream("myFile.txt", FileMode.Open, isf))
{
try
{
// 要上传的文件
bSendingFile = new byte[sendingZipStream.Length];
sendingZipStream.Read(bSendingFile, 0, bSendingFile.Length);
HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(new Uri(url, UriKind.Absolute));
httpReq.Method = "POST";
//httpReq.ContentType = "multipart/form-data;";
httpReq.ContentType = "Text/html";
// httpReq.BeginGetResponse(WebResponseCallback, httpReq);
IAsyncResult asyncResult = httpReq.BeginGetRequestStream(new AsyncCallback(RequestStreamCallback), httpReq);
} catch (Exception ex)
{
String strError = ex.ToString();
MessageBox.Show("获取失败");
}
}
}
}
/// <summary>
/// 返回用于将数据写入Stream,写入数据,并发送
/// </summary>
/// <param name="result"></param>
private void RequestStreamCallback(IAsyncResult result)
{
HttpWebRequest request = result.AsyncState as HttpWebRequest;
// 返回用于将数据写入某 URI 资源的 Stream
Stream requestStream = request.EndGetRequestStream(result);
requestStream.Write(bSendingFile, 0, bSendingFile.Length);
requestStream.Flush();
requestStream.Close();
request.BeginGetResponse(new AsyncCallback(ResponseCallback), request);
}
/// <summary>
/// 获取最终的返回结果
/// </summary>
/// <param name="result"></param> private void ResponseCallback(IAsyncResult result)
{
try
{
HttpWebRequest request = (HttpWebRequest)(result.AsyncState);
StreamReader response = new StreamReader(request.EndGetResponse(result).GetResponseStream());
string data = response.ReadToEnd(); //将Stream转为String
data = data.Substring(0, 1024);//只获取前1024个字符。
Dispatcher.BeginInvoke(() => //传给主线程结果
{
MessageBox.Show(data);
});
}
catch
{
Dispatcher.BeginInvoke(() => //传给主线程结果
{
MessageBox.Show("获取失败");
});
}
}程序代码如上,我想知道为什么 使用string url = "http://www.oschina.net/wp7";时可以返回信息
但换一个网址就不行?就一直提示“获取失败”。
例如我想 string url = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";
应该要怎么设置?求高手解答下,我刚学习这方面内容
并不能把你本地的文件上传啊