2016-01-02 10 views
1

У меня есть требование о том, что мне нужно получить данные из базы данных salesforce. Мои идентификаторы ввода были бы более 1000+. Поэтому я хотел бы передать этот список идентификаторов в методе post.Отправить запрос на отправку salesforce в java

Метод GET терпит неудачу, так как он превышает предел.

Может кто-нибудь помочь мне в этом?

ответ

1

Я исхожу из вашего вопроса, что некоторые (но не все) запросы GET для SalesForce уже работают, поэтому у вас уже есть большая часть кода, необходимого для общения с 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... 
    } 
} 

Это, пожалуй, стоит отметить, что, в сущности, код не сильно отличается от that in a related question, который появляется в боковая панель.

+0

Спасибо за ответ. Здесь я не могу использовать execute(). Когда я пытаюсь инициализировать как HttpClient httpClient = new DefaultHttpClient(); он проявляется как депекратированный. Не могли бы вы предложить мне? @Luke Woodward –

+0

@DavidSam: вы можете использовать 'HttpClient httpclient = HttpClients.createDefault();' как в ответе, с которым я связан? –