Windows phone 8 如何在Windows Phone 8中将视频作为块上传
这是我上传视频的代码,但显示找不到远程服务器Windows phone 8 如何在Windows Phone 8中将视频作为块上传,windows-phone-8,uploading,Windows Phone 8,Uploading,这是我上传视频的代码,但显示找不到远程服务器 public void Uploadvideo() { IsolatedStorageFileStream isoVideoFile = new IsolatedStorageFileStream(videoName, ileMode.Open, FileAccess.Read, IsolatedStorageFile.GetUserStoreForApplication()); if (isoVideoFile != null)
public void Uploadvideo()
{
IsolatedStorageFileStream isoVideoFile = new IsolatedStorageFileStream(videoName, ileMode.Open, FileAccess.Read, IsolatedStorageFile.GetUserStoreForApplication());
if (isoVideoFile != null)
{
string FilePath = videoName;
long Offset = 0;
int ChunkSize = 2621;
byte[] Buffer = new byte[ChunkSize];
try
{
long FileSize = isoVideoFile.Length;
isoVideoFile.Position = Offset;
int BytesRead = 0;
while (Offset != FileSize)
{
BytesRead = isoVideoFile.Read(Buffer, 0, ChunkSize);
if (BytesRead != Buffer.Length)
{
ChunkSize = BytesRead;
byte[] TrimmedBuffer = new byte[BytesRead];
Array.Copy(Buffer, TrimmedBuffer, BytesRead);
Buffer = TrimmedBuffer;
}
string url = "http://sample/testService/service.asmx/UploadFileWithOffset?";
string Params = "FileName=" + videoName + "&buffer=" + Buffer + "&Offset=" + Offset;
var res = await GetHttpWebRequestAndRespose(url, Params);
}
}
catch (Exception ex)
{
}
finally
{
isoVideoFile.Close();
}
}
}
public async static Task<string> GetHttpWebRequestAndRespose(string url, string postData)
{
var tcs = new TaskCompletionSource<string>();
if (NetworkInterface.GetIsNetworkAvailable())
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
//request.ContentType = "application/json";
request.ContentType = "application/x-www-form-urlencoded";
byte[] requestBody = Encoding.UTF8.GetBytes(postData);
using (var postStream = await GetRequestStreamAsync(request))
{
await postStream.WriteAsync(requestBody, 0, requestBody.Length);
}
try
{
var response = (HttpWebResponse)await request.GetResponseAsync();
if (response != null)
{
var reader = new StreamReader(response.GetResponseStream());
string responseString = await reader.ReadToEndAsync();
tcs.SetResult(responseString);
}
}
catch (WebException we)
{
var reader = new StreamReader(we.Response.GetResponseStream());
string responseString = reader.ReadToEnd();
tcs.SetResult(responseString);
}
}
else
{
MessageBox.Show("Network unavailable, Please try again later.");
}
return await tcs.Task;
}
public void Uploadvideo()
{
IsolatedStorageFileStream isoVideoFile=新的IsolatedStorageFileStream(videoName,ileMode.Open,FileAccess.Read,IsolatedStorageFile.GetUserStoreForApplication());
if(isoVideoFile!=null)
{
字符串FilePath=videoName;
长偏移=0;
int ChunkSize=2621;
字节[]缓冲区=新字节[ChunkSize];
尝试
{
long FileSize=isoVideoFile.Length;
isoVideoFile.Position=偏移量;
int字节读取=0;
while(偏移量!=文件大小)
{
BytesRead=isoVideoFile.Read(缓冲区,0,ChunkSize);
if(字节读取!=缓冲区长度)
{
ChunkSize=BytesRead;
字节[]TrimmedBuffer=新字节[字节读取];
复制(Buffer、TrimmedBuffer、BytesRead);
缓冲区=TrimmedBuffer;
}
字符串url=”http://sample/testService/service.asmx/UploadFileWithOffset?";
string Params=“FileName=“+videoName+”&buffer=“+buffer+”&Offset=“+Offset;
var res=等待GetHttpWebRequestAndRespose(url,参数);
}
}
捕获(例外情况除外)
{
}
最后
{
isoVideoFile.Close();
}
}
}
公共异步静态任务GetHttpWebRequestAndRespose(字符串url,字符串postData)
{
var tcs=new TaskCompletionSource();
if(NetworkInterface.GetIsNetworkAvailable())
{
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(url);
request.Method=“POST”;
//request.ContentType=“application/json”;
request.ContentType=“application/x-www-form-urlencoded”;
byte[]requestBody=Encoding.UTF8.GetBytes(postData);
使用(var postStream=await GetRequestStreamAsync(请求))
{
wait postStream.WriteAsync(requestBody,0,requestBody.Length);
}
尝试
{
var response=(HttpWebResponse)wait request.GetResponseAsync();
if(响应!=null)
{
var reader=newstreamreader(response.GetResponseStream());
string responseString=Wait reader.ReadToEndAsync();
tcs.设置结果(响应预算);
}
}
catch(WebException-we)
{
var reader=newstreamreader(we.Response.GetResponseStream());
字符串responseString=reader.ReadToEnd();
tcs.设置结果(响应预算);
}
}
其他的
{
显示(“网络不可用,请稍后再试。”);
}
返回等待任务;
}
我的代码中有什么错误??如果有人愿意帮忙。请发布错误消息details@verdesrobert未找到远程服务器。@verdesrobert Uploadvideo方法工作正常,但在通过调用GetHttpWebRequestAndRespose方法发布数据时,它将捕获块并显示错误,因为未找到远程服务器。。。