WebView NavigateWithHttpRequestMessage Post is not delivered to the webserver

↘锁芯ラ 提交于 2019-12-08 10:24:40

问题


This is a follow-up question to the suggestion of user @Kiewic to make a post request using a webview: Post data with a request in a Windows Store app WebView - using C#

So I am using this code

// defined before: string uri, User user
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, new Uri(uri));

request.Content = new HttpStringContent(
    String.Format(
        "language={0}&session_id={1}&user_id={2}",
        Text.GetLanguage(),
        user.session_id,
        user.user_id.ToString()
    ),
    Windows.Storage.Streams.UnicodeEncoding.Utf8,
    "application/x-www-form-urlencoded"
);

webView.NavigateWithHttpRequestMessage(request); // webView defined in xaml

Fiddler shows me this request:

POST http://mobile.mysite.com/ HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US,en;q=0.8,de-CH;q=0.5,de;q=0.3
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; SMJB; WebView/2.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: mobile.mysyte.com
Content-Length: 101
Connection: Keep-Alive
Pragma: no-cache
Cookie: _ga=GA1.2.769009833.1387593479; PHPSESSID=nk6b04rb7d7vu4vmm2ish7l0o4

language=en&session_id=fhihferihguiegierewfrefghxrfer&user_id=1

The webserver technology is PHP, so I used this code to print the post content

<?php
var_dump($_POST);
?>

But the result is an empty array. So where is my mistake?


回答1:


According to a Microsoft employee there is a bug with setting the headers of the request content. This should mean that nothing is wrong with my code in the first post: http://social.msdn.microsoft.com/Forums/windowsapps/en-US/7deaf4ba-611f-4957-af3c-9b2b2e1e1b8b/webviewnavigatewithhttprequestmessage-set-contenttype?forum=winappswithcsharp

This means you cannot really use NavigateWithHttpRequest and you should use another approach to post data. User @Kiewic made a suggestion which works on Windows 8 too: Post data with a request in a Windows Store app WebView - using C#



来源:https://stackoverflow.com/questions/20720856/webview-navigatewithhttprequestmessage-post-is-not-delivered-to-the-webserver

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!