HttpClient PostAsync参数不正确

时间:2017-08-05 18:02:47

标签: c# windows visual-studio uwp

我刚刚在我的Macbook Air上部署了Windows 10 64位教育,这是我主要开发PC上稍微更新的安装程序,它也运行Windows 10 64位教育。

我已经安装了Visual Studio 2017并下载了为我的项目解决方案打包的所有块,这正是我在开发PC上完成的。

我的问题是,当我运行我们一直在内部使用的生产代码并且没有收到客户的投诉时,它不能用于我的新设置/安装。

我们有一种方法可以使用简单的用户名和密码字段登录用户。当我们调用PostAsync方法时,它会将表单数据发送到我们的服务器。我使用过Postman并收到了正确的答复。代码尚未被修改或更改,并且是已知的工作代码。我也在咖啡店和家里的妻子工作,这是唯一的区别。我还没有尝试让这个在办公室工作。客户去咖啡馆,一直使用家庭wifi ..

非常感谢任何想法和建议

模糊异常 - 但我的代码根本没有变化?

{System.ArgumentException: The parameter is incorrect.
The parameter is incorrect.
at Windows.Web.Http.HttpClient.PostAsync(Uri uri, IHttpContent content)
at CoreProject.Helpers.LogginHelper.<UserLogin>d__1.MoveNext()}

编辑:

URI设置代码

Uri uri = new URI("https://oururi.com/login");

HttpClient设置代码

// disable caching
// https://social.msdn.microsoft.com/Forums/en-US/79e98534-5d8e-4879-acbe-7a457ee2a7ad/windowswebhttphttpclient-turn-off-caching?forum=winappswithcsharp
var RootFilter = new HttpBaseProtocolFilter();
RootFilter.CacheControl.ReadBehavior = HttpCacheReadBehavior.NoCache;
RootFilter.CacheControl.WriteBehavior = HttpCacheWriteBehavior.NoCache;

HttpClient httpClient = new HttpClient(RootFilter);
httpClient.DefaultRequestHeaders.Add("email", email);
httpClient.DefaultRequestHeaders.Add("pw", password);
httpClient.DefaultRequestHeaders.Add("apiVersion", "2.0");
httpClient.DefaultRequestHeaders.Add("version", CacheHelper.getVersionString());
httpClient.DefaultRequestHeaders.Add("appID", CacheHelper.Config.AppId());
httpClient.DefaultRequestHeaders.Add("platform", "windows");
httpClient.DefaultRequestHeaders.Add("updated", LocalSettingsHelper.GetContentLastUpdatedTimestamp());
httpClient.DefaultRequestHeaders.Add("bundleID", CacheHelper.Config.BundleId());
httpClient.DefaultRequestHeaders.Add("vendorID", Windows.System.UserProfile.AdvertisingManager.AdvertisingId);
httpClient.DefaultRequestHeaders.Add("deviceType", UtilityHelper.DeviceType());
httpClient.DefaultRequestHeaders.Add("osVersion", AnalyticsInfo.VersionInfo.DeviceFamilyVersion);

String termsValue = didAcceptTerms ? "1" : "0";
httpClient.DefaultRequestHeaders.Add("terms", termsValue);
return httpClient;

抛出异常的方法调用

 HttpResponseMessage response = await httpClient.PostAsync(uri, null);

0 个答案:

没有答案