0
我用下面的代码来从我的网络服务器JSON字符串:WebClient.OpenReadAsync - 如何发布变量,而不是使用查询字符串
var webClient = new WebClient();
webClient.OpenReadCompleted += OnOpenReadCompleted;
webClient.OpenReadAsync(new Uri("https://myurl.com/request.cgi?user=" + user + "&pass=" + pass + "&junk=" + DateTime.Now, UriKind.Absolute));
...
private void OnOpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
// response processed here
}
我打算使用的变量进行加密,但想能够将变量发布到服务器,而不是将它们包含在查询字符串中。我将如何实现这一目标?
谢谢 - 斯图
编辑:是否更改了代码如下:
var webClient = new WebClient();
webClient.UploadStringCompleted += OnOpenReadCompleted;
webClient.Headers["Content-Type"] = "application/x-www-form-urlencoded";
webClient.Encoding = Encoding.UTF8;
webClient.UploadStringAsync(new Uri("https://myurl.com/request.cgi"), "POST", "user=" + user + "&pass=" + pass + "&junk=" + DateTime.Now, UriKind.Absolute);
...
private void OnOpenReadCompleted(object sender, UploadStringCompletedEventArgs e)
{
// response processed here
}
为响应处理的一部分,我检查isolatedstorage已保存的文件,如果存在则删除它,并将新的回复保存到文件中。
然而,由于使其上面的代码改变现在不会让我删除现有的文件:
private void OnOpenReadCompleted(object sender, UploadStringCompletedEventArgs e)
{
StreamReader reader = new StreamReader(e.Result);
string myresult = reader.ReadToEnd();
reader.Close();
reader.Dispose();
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
if (store.FileExists("json.txt"))
{
store.DeleteFile("json.txt"); // this errors with System.MethodAccessException was unhandled
// Message=Attempt to access the method failed: System.IO.StreamReader..ctor(System.String)
}
...
}
不明白为什么代码变化影响呢?
编辑:
通过改变固定:
StreamReader reader = new StreamReader(e.Result);
string myresult = reader.ReadToEnd();
reader.Close();
reader.Dispose();
到
string myresult = (string)e.Result;
感谢乔恩,改变了上面我的问题所示的代码,但它现在抛出一个错误,从孤立存储删除 –
当您尝试访问Windows Phone上的不受支持的方法时,您通常会得到该异常。事件处理程序中必须有其他事情正在进行。 – Jon
是在请求删除文件之前是以下内容:'StreamReader reader = new StreamReader(e.Result); string myresult = reader.ReadToEnd(); reader.Close(); reader.Dispose();' 当初始请求是OpenReadAsync时,DeleteFile与此代码一起工作正常,但当UploadStringAsync –