httpclient postasync windows phone 8.1通用app第二次调用404错误

时间:2015-06-19 09:37:43

标签: http post windows-phone-8.1 httpclient universal

我在通用Windows Phone 8.1应用中遇到了httpclient的问题。 我一直在寻找,但在任何帖子中我都没有有效的解决方案。

问题是,当我第一次调用Web服务正确运行时,但是当我第二次或第三次调用它时,给我一个错误404.

在重新启动之前,应用程序将无法再次运行。

我需要在post函数中发送该数据,因为我想发送一个xml格式化为字符串。

我的代码非常简单:

var handler = new HttpClientHandler
        {
            Credentials = new
                NetworkCredential("user", "pass", "domain")
        };


        using (var client = new HttpClient(handler))
        {
            var formContent = new FormUrlEncodedContent(new[]
                    {
                        new KeyValuePair<string, string>("XMLText", XMLText),
                        new KeyValuePair<string, string>("param1", "textParam1")
                    });

            HttpResponseMessage response = new HttpResponseMessage();
            response = await client.PostAsync(URL, formContent);
            var responseString = response.Content.ReadAsStringAsync().Result;
            MessageDialog msgbox = new MessageDialog(responseString);
            await msgbox.ShowAsync();
        }

我的网络服务更简单:

[WebMethod]
    public String SetEnvioXML(string XMLText, string param1)
    {
        return XMLText;
    }

任何解决方案?

对不起我的英语和所有人!

欢迎任何帮助!

2 个答案:

答案 0 :(得分:0)

尝试使用下面的代码可能会这样, 首先尝试在Google Rest Client或Post Man上运行此功能

#include <windows.h>
#include <iostream>

using namespace std;

int main()
{

   system("cd E:\\Test\\Test 1.0");
   system("java -jar Test.jar");

}

答案 1 :(得分:0)

最后我找到了解决方案,我将身份验证从Windows身份验证更改为IIS中的基本身份验证,并在其中设置域。然后我试试:

client = new HttpClient();
                var authHeader = new AuthenticationHeaderValue(“Basic”,Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format(“{0}:{1}”,“usuario”,“contraseña”))));                 client.DefaultRequestHeaders.Authorization = authHeader;

它规则。谢谢你的所有答案!