Java twitterapi:有人能建议我如何在HttpPost请求的主体中发送参数吗?

Java twitterapi:有人能建议我如何在HttpPost请求的主体中发送参数吗?,java,Java,我正在使用Twitter api 1.1 下面是从api 1.1获取承载令牌的代码。 我需要设置请求的内容类型,并在请求主体中发送grant type=client\u凭据。我已经在发送头中编码的使用者密钥和使用者密钥 有人可以指导我如何在HttpPost请求主体中设置内容和发送参数吗 ----------------------代码从这里开始-------------------------------------------------------- package com.memoria

我正在使用Twitter api 1.1 下面是从api 1.1获取承载令牌的代码。 我需要设置请求的内容类型,并在请求主体中发送grant type=client\u凭据。我已经在发送头中编码的使用者密钥和使用者密钥

有人可以指导我如何在HttpPost请求主体中设置内容和发送参数吗

----------------------代码从这里开始--------------------------------------------------------

 package com.memorial.twitter;

import java.io.BufferedReader;
 import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

import javax.net.ssl.HttpsURLConnection;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.http.HttpEntity;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.client.HttpClient;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.BufferedReader;
//import java.io.IOException;
import java.io.InputStreamReader;
//import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
//import java.net.MalformedURLException;
//import java.net.ProtocolException;
import java.net.URL;
import java.net.URLEncoder;
import java.security.GeneralSecurityException;
import java.util.Calendar;
//import java.util.Date;
import java.util.UUID;

import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;

import quicktime.streaming.Stream;


import com.sun.tools.javac.util.Convert;



@WebServlet("/twitter_final")
public class Twitter_Final extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("I am post");
         String handle=request.getParameter("TwitterID");
         System.out.println(handle);




         HttpClient httpclient = new DefaultHttpClient();
         String consumer_key="consumer_key";
         String consumer_secret="consumer_secret";  
         String authorization_header_string=consumer_key+":"+consumer_secret;
         authorization_header_string=URLEncoder.encode(authorization_header_string, "UTF-8");
         System.out.println(authorization_header_string);
         HttpPost httppost = new HttpPost("https://api.twitter.com/oauth/token?grant_type=client_credentials");
         httppost.setHeader("Authorization",authorization_header_string);

         ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String responseBody = httpclient.execute(httppost, responseHandler);
        System.out.println(responseBody);
       //  oauth_token = responseBody.substring(responseBody.indexOf("oauth_token=") + 12, responseBody.indexOf("&oauth_token_secret="));
    }
}
package.com.memorial.twitter;
导入java.io.BufferedReader;
导入java.io.DataOutputStream;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.net.urlcoder;
导入javax.net.ssl.HttpsURLConnection;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入org.apache.http.HttpEntity;
导入org.apache.http.client.ResponseHandler;
导入org.apache.http.client.entity.UrlEncodedFormEntity;
导入org.apache.http.client.methods.HttpPost;
导入org.apache.http.impl.client.BasicResponseHandler;
导入org.apache.http.client.HttpClient;
导入java.io.IOException;
导入java.io.PrintWriter;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入java.io.BufferedReader;
//导入java.io.IOException;
导入java.io.InputStreamReader;
//导入java.io.PrintWriter;
导入java.io.UnsupportedEncodingException;
导入java.net.HttpURLConnection;
//导入java.net.MalformedURLException;
//导入java.net.ProtocolException;
导入java.net.URL;
导入java.net.urlcoder;
导入java.security.GeneralSecurityException;
导入java.util.Calendar;
//导入java.util.Date;
导入java.util.UUID;
导入javax.crypto.Mac;
导入javax.crypto.SecretKey;
导入javax.crypto.spec.SecretKeySpec;
导入org.apache.commons.codec.binary.Base64;
导入org.apache.http.client.ClientProtocolException;
导入org.apache.http.client.HttpClient;
导入org.apache.http.client.ResponseHandler;
导入org.apache.http.client.methods.HttpPost;
导入org.apache.http.impl.client.BasicResponseHandler;
导入org.apache.http.impl.client.DefaultHttpClient;
导入quicktime.streaming.Stream;
导入com.sun.tools.javac.util.Convert;
@WebServlet(“/twitter\u final”)
公共类Twitter\u Final扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
System.out.println(“我是post”);
字符串句柄=request.getParameter(“TwitterID”);
系统输出打印LN(手柄);
HttpClient HttpClient=新的DefaultHttpClient();
字符串consumer\u key=“consumer\u key”;
字符串consumer\u secret=“consumer\u secret”;
字符串授权\头\字符串=消费者\密钥+“:”+消费者\密钥;
authorization_header_string=urlcoder.encode(authorization_header_string,“UTF-8”);
System.out.println(授权\标题\字符串);
HttpPost HttpPost=新的HttpPost(“https://api.twitter.com/oauth/token?grant_type=client_credentials");
setHeader(“Authorization”,Authorization\u header\u string);
ResponseHandler ResponseHandler=新BasicResponseHandler();
字符串responseBody=httpclient.execute(httppost,responseHandler);
系统输出打印LN(响应库);
//oauth_token=responseBody.substring(responseBody.indexOf(“oauth_token=”)+12,responseBody.indexOf(“&oauth_token_secret=”);
}
}

非常感谢您的帮助。

应将补助金类型设置为post参数:

List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("grant_type", "client_credentials"));
post.setEntity(new UrlEncodedFormEntity(parameters));
List parameters=new ArrayList();
添加(新的BasicNameValuePair(“授权类型”、“客户端凭据”);
setEntity(新的UrlEncodedFormEntity(参数));

应将授权类型设置为post参数:

List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("grant_type", "client_credentials"));
post.setEntity(new UrlEncodedFormEntity(parameters));
List parameters=new ArrayList();
添加(新的BasicNameValuePair(“授权类型”、“客户端凭据”);
setEntity(新的UrlEncodedFormEntity(参数));

Twitter api返回500禁止Deni很抱歉,但我不知道Twitter api如何与App Auth一起工作,我所知道的是,如果是post,请求的主体是post参数Witter api返回500禁止Deni很抱歉,但我不知道Twitter api如何与App Auth一起工作,我所知道的是,对于post,请求的主体是post参数