Windows phone 7 Windows phone 7:发布一些值,检索响应
如何将值发布到联机页面,然后检索响应以将其放入字符串中? 这是一个PHP页面,它获取Windows phone 7 Windows phone 7:发布一些值,检索响应,windows-phone-7,post,data-retrieval,Windows Phone 7,Post,Data Retrieval,如何将值发布到联机页面,然后检索响应以将其放入字符串中? 这是一个PHP页面,它获取$\u POST值,然后回显我想要获取的响应。查看对象 他的代码稍微改编自好的,我认为它是可行的。但是我在哪里可以得到我的回应呢?如果我使用:var Response=streamReader.ReadToEnd();Show(Response.ToString());我得到一个errorstreamReader.ReadToEnd()已经返回了一个字符串,因此.ToString()是多余的。假设您正在GetRe
$\u POST
值,然后回显我想要获取的响应。查看对象
他的代码稍微改编自好的,我认为它是可行的。但是我在哪里可以得到我的回应呢?如果我使用:var Response=streamReader.ReadToEnd();Show(Response.ToString());我得到一个errorstreamReader.ReadToEnd()已经返回了一个字符串,因此.ToString()是多余的。假设您正在GetResponseCallback()方法中创建MessageBox,请注意您在那里有一个新线程,因此要弹出MessageBox,您需要将其称为
Dispatcher.BeginInvoke(()=>MessageBox.Show(Response))代码>是的,你说得对-但现在,理解这一点的最后一个问题是,如何将字段值附加到post数据?我已经这样做了,但是我得到了一个错误:string postData=“language=en&value=“+testo.Text;如何在post字符串中输入文本框值???我检索到一个无效的cross thread错误,您可以在调用后台线程之前将值存储在字符串中(简单方法),或者使用dispatcher在方法中获取值。有关示例,请参见。很抱歉,我不能直接给你代码,因为我现在正在度假。:)
public void DoWork()
{
var url = "http://posttestserver.com/post.php";
// Create the web request object
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
// Start the request
webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest);
}
void GetRequestStreamCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
// End the stream request operation
Stream postStream = webRequest.EndGetRequestStream(asynchronousResult);
// Create the post data
// Demo POST data
string postData = "Username=MyUserName&password=MyPassword";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Add the post data to the web request
postStream.Write(byteArray, 0, byteArray.Length);
postStream.Close();
// Start the web request
webRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), webRequest);
}
void GetResponseCallback(IAsyncResult asynchronousResult)
{
try
{
HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response;
// End the get response operation
response = (HttpWebResponse)webRequest.EndGetResponse(asynchronousResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamReader = new StreamReader(streamResponse);
var Response = streamReader.ReadToEnd();
streamResponse.Close();
streamReader.Close();
response.Close();
}
catch (WebException e)
{
// Error treatment
// ...
}
}
private void button1_Click(object sender, RoutedEventArgs e)
{
DoWork();
}