0

我们的 ASP.NET C# Web 应用程序用于以下环境 -

-.NET 框架 4 - IIS 7 - Windows 2008 - Visual Studio 2012 - .NET IDE - C# - HTTPS (SSL)

Web 服务端点位于第三方供应商上。
Web 服务端点使用“补丁”动词。

第三方供应商规范要求 Web 服务端点

1) 需要特定资源的 bigInt id 2) “补丁”动词

String address = string.Format("https://blah.blah.com/users/{0}?verb={1}",
                  Uri.EscapeDataString(vfuArg.ViaFouraUserId.ToString()), Uri.EscapeDataString("patch"));

但是,规范还允许其他不在 Web 服务 url 中的参数。规格非常简短。

我有如下声明的命名值对:

var values = new NameValueCollection{  { "email", loggedInUserRegisteredEmailArg }  };

我上传的数据如下:

    byte[] result = clientArg.UploadValues(address, values);
    var clientResponseForModifyingUser = Encoding.UTF8.GetString(result);

但是,我收到 401 错误。

我是否使用 C# WebClient 包装器正确调用“补丁”动词?我没有找到很多关于“补丁”动词和 C# WebClient 的在线文档。

为了解决问题,我应该对上面列出的代码片段进行哪些更改?

4

1 回答 1

2

“动词”通常表示 http 方法……“GET”、“POST”等。它不在查询字符串上进行 - 它在调用本身中指定:

byte[] result = clientArg.UploadValues(address, "PATCH", values);
于 2013-08-12T14:07:55.120 回答