Windows phone 7 Windows phone 7:发布一些值,检索响应

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

如何将值发布到联机页面,然后检索响应以将其放入字符串中? 这是一个PHP页面,它获取
$\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();
}