凭据正确时无法连接 HttpClient

Trouble connecting with HttpClient when credentials are correct

我知道我可以连接到端点(使用 Postman chrome 应用程序),但是当我尝试通过在 Azure 上作为 WebJob 执行的 HttpClient 尝试时,我收到了身份验证错误。

public  string ScanEndPoint()
        {
            string result;


            using (var client = new HttpClient())
            {
                var requestContent = new MultipartFormDataContent();

                var url = $"{Host}/{Path}";

                requestContent.Add(new StringContent("*"), Version);
                requestContent.Add(new StringContent("***"), Reference);
                requestContent.Add(new StringContent("********"), Password);
                var response =  client.PostAsync(url, requestContent).Result;
                result = response.Content.ReadAsStringAsync().Result;
            }
            return result;
        }

Mu​​ltipartFormData 是因为我必须 post body 而不是 headers 中的凭据。在Postman中点击代码link显示:

POST /*************.php HTTP/1.1
Host: *****-*******.****.******
Cache-Control: no-cache
Postman-Token: b574e803-1873-d7dd-ff10-bfc509991342
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="*"

**
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="***"

****
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="*********"

********************************
------WebKitFormBoundary7MA4YWxkTrZu0gW--

我需要采取什么步骤来复制那个 postman 请求以便它在代码中工作?

这是我们必须做的才能让它工作:

 using (var client = new HttpClient(handler: clientHandler, disposeHandler: true))
            {
                client.BaseAddress = new Uri(Host);

                var url = $"{Path}";
                var parameters = new Dictionary<string, string> {
                    { "V", Version },
                    { "ref", Reference },
                    { "password", Password }
                };

                var encodedContent = new FormUrlEncodedContent(parameters);

                var response = client.PostAsync(url, encodedContent).Result;
                result = response.Content.ReadAsStringAsync().Result;
            }
            return result;

处理程序为本地调试设置了一个代理,这在 Azure 上应该是无关紧要的,但如果证明是错误的,我可以将其删除。

我读到的大多数关于此的帖子都建议采用与@Jayendran 所指相同的方法。关于差异可能是什么的任何想法?

注意:我们还必须重新安排主机和路径,以便主机以“/”结尾