Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#桌面应用程序错误401如何发送数据_C#_.net_Api_Http Post - Fatal编程技术网

c#桌面应用程序错误401如何发送数据

c#桌面应用程序错误401如何发送数据,c#,.net,api,http-post,C#,.net,Api,Http Post,在我开发的桌面应用程序中获取令牌没有问题。但是当我试图发送数据时,我得到了一个401错误 HttpWebRequest webRequest; string requestParams = ""; webRequest = (HttpWebRequest)WebRequest.Create("url"); webRequest.Credentials = CredentialCache.DefaultCredentials; webRequest.Meth

在我开发的桌面应用程序中获取令牌没有问题。但是当我试图发送数据时,我得到了一个401错误

HttpWebRequest webRequest;
string requestParams = "";
webRequest = (HttpWebRequest)WebRequest.Create("url");
webRequest.Credentials = CredentialCache.DefaultCredentials;
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
webRequest.Headers.Add("x-api-key", "112233");
webRequest.Headers.Add("AccessToken", token);
byte[] byteArray = Encoding.UTF8.GetBytes(req);
webRequest.ContentLength = byteArray.Length;
using (Stream requestStream = webRequest.GetRequestStream())
{
     requestStream.Write(byteArray, 0, byteArray.Length);
}
using (WebResponse response = webRequest.GetResponse()) 
{
    using (Stream responseStream = response.GetResponseStream())
        {
             StreamReader rdr = new StreamReader(responseStream, Encoding.UTF8);
             string Json = rdr.ReadToEnd();         
        }
}

问题在于设置令牌。首先,您需要确定服务器想要什么作为令牌。您可以对
承载
令牌尝试此操作

    webRequest.Headers.Add("Authorization", "Bearer " + token);

问题在于设置令牌。首先,您需要确定服务器想要什么作为令牌。您可以对
承载
令牌尝试此操作

    webRequest.Headers.Add("Authorization", "Bearer " + token);

要使程序正常工作,您必须在中提供实际的URL,而不仅仅是字符串
“URL”

webRequest=(HttpWebRequest)webRequest.Create(“url”)


要使程序正常工作,您必须在中提供实际的URL,而不仅仅是字符串
“URL”

webRequest=(HttpWebRequest)webRequest.Create(“url”)

使用c#windows窗体应用程序发布到api。oauth2.0

            using (var client1 = new HttpClient ())
            {
                client1.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client1.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Token());
                client1.DefaultRequestHeaders.Add("x-api-key", "xxxx");

                var builder = new UriBuilder(new Uri("you - url"));

                HttpRequestMessage request1 = new HttpRequestMessage(HttpMethod.Post, builder.Uri);

                request1.Content = new StringContent("{\"values\":" + JsonConvert.SerializeObject("you -data")+ "}", Encoding.UTF8, "application/json");
               
                HttpResponseMessage response = await client1.SendAsync(request1);

            };
使用c#windows窗体应用程序发布到api。oauth2.0

            using (var client1 = new HttpClient ())
            {
                client1.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client1.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Token());
                client1.DefaultRequestHeaders.Add("x-api-key", "xxxx");

                var builder = new UriBuilder(new Uri("you - url"));

                HttpRequestMessage request1 = new HttpRequestMessage(HttpMethod.Post, builder.Uri);

                request1.Content = new StringContent("{\"values\":" + JsonConvert.SerializeObject("you -data")+ "}", Encoding.UTF8, "application/json");
               
                HttpResponseMessage response = await client1.SendAsync(request1);

            };

你知道401密码是什么意思,不是吗?我不知道你希望从我们这里得到什么样的帮助。是的,我知道。只是有代码错误?401表示身份验证有问题。您可能使用了错误的令牌、错误的api密钥或未正确传递令牌。您需要了解服务需要什么。您确定它同时需要访问令牌和api密钥吗?你确定你需要
凭证缓存.默认凭证
?当我用邮递员测试它时没有问题。是的,它需要令牌和api密钥我不确定CredentialCache.DefaultCredentials尝试删除
CredentialCache.DefaultCredentials
。它可能会干扰身份验证,因为它将凭据设置为应用程序运行时使用的凭据。您知道401代码的含义,不是吗?我不知道你希望从我们这里得到什么样的帮助。是的,我知道。只是有代码错误?401表示身份验证有问题。您可能使用了错误的令牌、错误的api密钥或未正确传递令牌。您需要了解服务需要什么。您确定它同时需要访问令牌和api密钥吗?你确定你需要
凭证缓存.默认凭证
?当我用邮递员测试它时没有问题。是的,它需要令牌和api密钥我不确定CredentialCache.DefaultCredentials尝试删除
CredentialCache.DefaultCredentials
。它可能会干扰身份验证,因为它会将凭据设置为应用程序运行时使用的凭据。我尝试了,但没有。我尝试了,但没有。我有一个实际的URL。我有一个实际的URL。请解释您试图回答的问题。解释与发布的代码同样重要。使用c#windows窗体应用程序发布到api。oauth2.0请解释您试图回答的问题。解释与发布的代码同样重要。使用c#windows窗体应用程序发布到api。oauth2.0