Java 在Android中使用HttpPost发送承载令牌

Java 在Android中使用HttpPost发送承载令牌,java,android,httpclient,restful-authentication,Java,Android,Httpclient,Restful Authentication,我找不到使用我创建的承载令牌通过服务器验证我的应用程序的方法。不过,它与邮递员配合得很好 我尝试过使用UTF-8编码,在url中使用?access_令牌,尝试过在Stackoverflow上找到的许多答案 HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost("https://dmyzda2o.ui.nabu.casa/api/services/script/turn_on"); //h

我找不到使用我创建的承载令牌通过服务器验证我的应用程序的方法。不过,它与邮递员配合得很好

我尝试过使用UTF-8编码,在url中使用?access_令牌,尝试过在Stackoverflow上找到的许多答案

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("https://dmyzda2o.ui.nabu.casa/api/services/script/turn_on");
//httpPost.addHeader("Accept-Language", "he");
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("Authorization", "Bearer eyJ0NiJ9.eyJpc3MiOiJmOWVkZDI5YjY2MTE0Mjc3YNDdmMzIwMWI2ZCIsImlhdCI6MTU1OTIwMjYwOCwiZXhwIjoxODc0NTYyNjA4fQ.HEb3b6kpW6OzAxcLumS8DlJWmZVAWfn0Lg84seBZGpQ"));
nameValuePair.add(new BasicNameValuePair("Content-Type", "application/json"));
nameValuePair.add(new BasicNameValuePair("entity_id", "script.gt11"));
Log.v("nameValue","entered");

try {
    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair, HTTP.UTF_8));
HttpClient-HttpClient=newdefaulthttpclient();
HttpPost HttpPost=新的HttpPost(“https://dmyzda2o.ui.nabu.casa/api/services/script/turn_on");
//addHeader(“接受语言”、“他”);
List nameValuePair=新的ArrayList();
nameValuePair.add(新的基本nameValuePair(“授权”、“持票人eyJ0NiJ9.EYJPC3MIOIJMOWVKZDI5YJY2MTE0MJC3YNDMMZIWMWI2ZCI6MTTU1OTIWMJYWOCWIZHWIJOXOXODC0NYNJA4FQ.HEB3B6KPW6OZAXCLUS8DLJWMZVAWFN0LG84SEBZPQ”);
添加(新的BasicNameValuePair(“内容类型”、“应用程序/json”);
添加(新的BasicNameValuePair(“实体id”、“脚本.gt11”);
Log.v(“名称值”、“输入”);
试一试{
setEntity(新的UrlEncodedFormEntity(nameValuePair,HTTP.UTF_8));
每次尝试都会出现401未经授权的错误。

为什么不将其用于网络请求?然后可以执行以下操作:

        val request = Request.Builder()
                .url(yourUrl)
                .header("Authorization", "Bearer $yourToken")
                .post(yourBody)
                .build()
为什么不使用网络请求?然后可以执行以下操作:

        val request = Request.Builder()
                .url(yourUrl)
                .header("Authorization", "Bearer $yourToken")
                .post(yourBody)
                .build()

我使用截击,但当我设置标题时,我使用以下方法:

HashMap<String, String> headers = new HashMap<String, String>();
    String authValue = "Bearer " + apiToken;
    headers.put("Authorization", authValue);
    headers.put("Accept", "application/json; charset=UTF-8");
    headers.put("Content-Type", "application/json; charset=UTF-8");
HashMap headers=newhashmap();
字符串authValue=“Bearer”+apiToken;
headers.put(“授权”,authValue);
headers.put(“Accept”,“application/json;charset=UTF-8”);
headers.put(“内容类型”、“应用程序/json;字符集=UTF-8”);

我正在使用截击,但当我设置标题时,我使用以下方法:

HashMap<String, String> headers = new HashMap<String, String>();
    String authValue = "Bearer " + apiToken;
    headers.put("Authorization", authValue);
    headers.put("Accept", "application/json; charset=UTF-8");
    headers.put("Content-Type", "application/json; charset=UTF-8");
HashMap headers=newhashmap();
字符串authValue=“Bearer”+apiToken;
headers.put(“授权”,authValue);
headers.put(“Accept”,“application/json;charset=UTF-8”);
headers.put(“内容类型”、“应用程序/json;字符集=UTF-8”);
授权不应该是一个参数。它是一个标题

“授权”不应是参数。它是一个标题


我正在传递一个令牌…没有凭据然后用您的令牌替换新字符串(encodedAuth)。我正在传递一个令牌…没有凭据然后用您的令牌替换新字符串(encodedAuth)。因为我使用的是内置的Apache,所以我使用的是内置的Apache