Java HttpPost主体Apache 4.3.2

Java HttpPost主体Apache 4.3.2,java,http,http-post,Java,Http,Http Post,我正在尝试使用ApacheJavaLib4.3.2生成POST类型的HttpRequest,但遇到了一个问题 没有方法设置主体或参数值 我试图在post http请求的主体上设置flac二进制文件 以下是我的示例代码: import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.cli

我正在尝试使用ApacheJavaLib4.3.2生成POST类型的HttpRequest,但遇到了一个问题

没有方法设置主体或参数值

我试图在post http请求的主体上设置flac二进制文件

以下是我的示例代码:

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;




public class GoogleSpeech {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            HttpClient client = new DefaultHttpClient();  
            String getURL = "https://www.google.com/speech-api/v1/recognize?client=chromium&lang=pt-PT&maxresults=10";



            HttpPost get = new HttpPost(getURL);

            get.setHeader("Content-Type", " audio/x-flac; rate=16000;");
            get.setHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7");



            HttpResponse responseGet = client.execute(get);  
            System.out.println(responseGet);

    } catch (Exception e) {
        e.printStackTrace();
    }

    }

}

我不知道我是否正确地理解了您的问题,但是如果您想将参数设置为HttpPost实例,这里是如何实现的

我复制了您的第一部分,即使我发现将其称为“获取”HttpPost实例有点困难:)


我不知道我是否正确地理解了您的问题,但是如果您想将参数设置为HttpPost实例,这里是如何实现的

我复制了您的第一部分,即使我发现将其称为“获取”HttpPost实例有点困难:)


我不知道我是否正确地理解了您的问题,但是如果您想将参数设置为HttpPost实例,这里是如何实现的

我复制了您的第一部分,即使我发现将其称为“获取”HttpPost实例有点困难:)


我不知道我是否正确地理解了您的问题,但是如果您想将参数设置为HttpPost实例,这里是如何实现的

我复制了您的第一部分,即使我发现将其称为“获取”HttpPost实例有点困难:)



谢谢你的回复,如果没有任何参数?只是价值?我的意思是:我只想在post方法的主体上放一个二进制flac。我更新了答案,包括对MultiPartEntity的引用。请看一看。非常感谢你的回复,我会测试它,很快会在这里写下。我按照你的建议做了,我得到了这个回复:回复:HTTP/1.1200 OK[内容类型:application/json;charset=utf-8,内容处置:附件,缓存控制:无转换,X-Content-Type-Options:nosniff,Pragma:no-Cache,日期:2014年2月4日星期二09:56:17 GMT,服务器:S3V1.0,内容长度:0,X-XSS-Protection:1;模式=块,X-Frame-Options:SAMEORIGIN]它应该给我一个转换的音频字符串,这是谷歌语音api做的,也许我没有访问响应的主体?谢谢你的回复我不熟悉谷歌语音api对不起。200代码显示成功,但你可能需要在某处设置断点并观察响应的结构。谢谢对于你的回复,如果没有任何参数?只有值?我的意思是:我只想在post方法的主体上放一个二进制flac。我更新了答案,包括对MultiPartEntity的引用。请看一看。非常感谢你的回复,我会测试它,会在这里写soonHey elbuild我按照你的建议做了,我得到了以下回复:响应:HTTP/1.1 200 OK[内容类型:application/json;charset=utf-8,内容处置:附件,缓存控制:无转换,X-Content-Type-Options:nosniff,Pragma:no-Cache,日期:周二,2014年2月4日09:56:17 GMT,服务器:S3 v1.0,内容长度:0,X-XSS-Protection:1;模式=块,X-Frame-Options:SAMEORIGIN]它应该给我一个转换的音频字符串,这是谷歌语音api做的,也许我没有访问响应的主体?谢谢你的回复我不熟悉谷歌语音api对不起。200代码显示成功,但你可能需要在某处设置断点并观察响应的结构。谢谢对于你的回复,如果没有任何参数?只有值?我的意思是:我只想在post方法的主体上放一个二进制flac。我更新了答案,包括对MultiPartEntity的引用。请看一看。非常感谢你的回复,我会测试它,会在这里写soonHey elbuild我按照你的建议做了,我得到了以下回复:响应:HTTP/1.1 200 OK[内容类型:application/json;charset=utf-8,内容处置:附件,缓存控制:无转换,X-Content-Type-Options:nosniff,Pragma:no-Cache,日期:周二,2014年2月4日09:56:17 GMT,服务器:S3 v1.0,内容长度:0,X-XSS-Protection:1;模式=块,X-Frame-Options:SAMEORIGIN]它应该给我一个转换的音频字符串,这是谷歌语音api做的,也许我没有访问响应的主体?谢谢你的回复我不熟悉谷歌语音api对不起。200代码显示成功,但你可能需要在某处设置断点并观察响应的结构。谢谢对于你的回复,如果没有任何参数?只有值?我的意思是:我只想在post方法的主体上放一个二进制flac。我更新了答案,包括对MultiPartEntity的引用。请看一看。非常感谢你的回复,我会测试它,会在这里写soonHey elbuild我按照你的建议做了,我得到了以下回复:响应:HTTP/1.1 200 OK[内容类型:application/json;charset=utf-8,内容处置:附件,缓存控制:无转换,X-Content-Type-Options:nosniff,Pragma:no-Cache,日期:周二,2014年2月4日09:56:17 GMT,服务器:S3 v1.0,内容长度:0,X-XSS-Protection:1;模式=块,X-Frame-Options:SAMEORIGIN]它应该给我一个转换后的音频字符串,这是谷歌语音api所做的,也许我没有访问响应的主体?感谢您的回复我不熟悉谷歌语音api抱歉。200代码显示成功,但您可能需要在某处设置断点并观察响应的结构。
String getURL = "https://www.google.com/speech-api/v1/recognize?client=chromium&lang=pt-PT&maxresults=10";
HttpPost get = new HttpPost(getURL);
get.setHeader("Content-Type", " audio/x-flac; rate=16000;");
get.setHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7");

List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("param1", "paramValue1")); // name and value of your param
formparams.add(new BasicNameValuePair("param2", paramValue2));  // name and value of your param
// and so on
// create the encoded form
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
// set it in the post request
get.setEntity(entity);
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addPart("file", new FileBody(new File("your path here")));