用java向salesforce发送post请求

用java向salesforce发送post请求,java,salesforce,apache-httpclient-4.x,spring-rest,Java,Salesforce,Apache Httpclient 4.x,Spring Rest,我需要从salesforce DB获取数据。我的输入ID将超过1000+。因此,我想在post方法中传递这个ID列表 GET方法失败,因为它超出了限制 有人能帮我吗?根据你的问题,我假设对SalesForce的一些(但不是全部)GET请求已经开始工作,因此你已经有了与SalesForce交谈所需的大部分代码,你只需要填补如何提出POST请求而不是GET请求的空白 我希望下面的代码提供了这方面的一些演示。请注意,它未经测试,因为我目前无法访问SalesForce实例来测试它: import org

我需要从salesforce DB获取数据。我的输入ID将超过1000+。因此,我想在post方法中传递这个ID列表

GET方法失败,因为它超出了限制


有人能帮我吗?

根据你的问题,我假设对SalesForce的一些(但不是全部)GET请求已经开始工作,因此你已经有了与SalesForce交谈所需的大部分代码,你只需要填补如何提出POST请求而不是GET请求的空白

我希望下面的代码提供了这方面的一些演示。请注意,它未经测试,因为我目前无法访问SalesForce实例来测试它:

import org.apache.http.HttpHeaders;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.message.BasicNameValuePair;

import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;

public class HttpPostDemo {

    public static void main(String[] args) throws Exception {

        String url = ... // TODO provide this.

        HttpPost httpPost = new HttpPost(url);
        // Add the header Content-Type: application/x-www-form-urlencoded; charset=UTF-8.
        httpPost.setHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_FORM_URLENCODED.withCharset(StandardCharsets.UTF_8).getMimeType());

        // Construct the POST data.
        List<NameValuePair> postData = new ArrayList<>();
        postData.add(new BasicNameValuePair("example_key", "example_value"));
        // add further keys and values, the one above is only an example.

        // Set the POST data in the HTTP request.
        httpPost.setEntity(new UrlEncodedFormEntity(postData, StandardCharsets.UTF_8));

        // TODO make the request...
    }
}
import org.apache.http.HttpHeaders;
导入org.apache.http.NameValuePair;
导入org.apache.http.client.entity.UrlEncodedFormEntity;
导入org.apache.http.client.methods.HttpPost;
导入org.apache.http.entity.ContentType;
导入org.apache.http.message.BasicNameValuePair;
导入java.nio.charset.StandardCharset;
导入java.util.ArrayList;
导入java.util.List;
公共类HttpPostDemo{
公共静态void main(字符串[]args)引发异常{
字符串url=…//TODO提供此选项。
HttpPost HttpPost=新的HttpPost(url);
//添加标题内容类型:application/x-www-form-urlencoded;charset=UTF-8。
httpPost.setHeader(HttpHeaders.CONTENT\u TYPE,ContentType.APPLICATION\u FORM\u URLENCODED.withCharset(StandardCharsets.UTF\u 8.getMimeType());
//构建POST数据。
List postData=new ArrayList();
添加(新的BasicNameValuePair(“示例_键”、“示例_值”);
//添加更多的键和值,上面的只是一个示例。
//在HTTP请求中设置POST数据。
setEntity(新的UrlEncodedFormEntity(postData,StandardCharsets.UTF_8));
//TODO发出请求。。。
}
}

也许值得指出的是,从本质上讲,代码与侧边栏中显示的代码没有太大区别。

谢谢您的回答。这里我无法使用execute()。当我尝试初始化为HttpClient HttpClient=new DefaultHttpClient()时;它显示为未装箱。你能推荐我吗@卢克Woodward@DavidSam:能否使用
HttpClient-HttpClient=HttpClients.createDefault()如我链接到的答案所示?