api 예제 here에서 예 Twilio java-sdk를 사용하여 Java Twilio 연결을 설정 중입니다.twilio 프록시 인증을 사용하는 Java 연결
유일한 차이점은 인증을 사용하여 웹 프록시 을 통해 내 Twilio 연결을 실행해야한다는 것입니다.
웹 프록시를 통해 Twilio에 연결하는 데있어 다른 질문이 있지만 허용되는 대답은 없습니다. 예를 this를 들어, 그 답변에 따라이 같은 솔루션 구현하는 시도 :
import com.twilio.sdk.TwilioRestClient;
import com.twilio.sdk.TwilioRestException;
import com.twilio.sdk.resource.factory.MessageFactory;
import com.twilio.sdk.resource.instance.Message;
import org.apache.http.HttpHost;
import org.apache.http.NameValuePair;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.DefaultProxyRoutePlanner;
import org.apache.http.message.BasicNameValuePair;
import java.util.ArrayList;
import java.util.List;
public class Example {
// Find your Account Sid and Token at twilio.com/console
public static final String ACCOUNT_SID = "asdfasdfasdfdasf";
public static final String AUTH_TOKEN = "asdfasdfasdfasdf";
public static final String PROXY_ADDRESS = "1.2.3.4";
public static final int PROXY_PORT = 80;
public static final String PROXY_USER = "user";
public static final String PROXY_PASSWORD = "password";
public static void main(String[] args) {
//Set up Proxy host
HttpHost proxy = new HttpHost(PROXY_ADDRESS, PROXY_PORT);
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
//Set up Proxy user credentials
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope(PROXY_ADDRESS, PROXY_PORT),
new UsernamePasswordCredentials(PROXY_USER, PROXY_PASSWORD));
//Set up HttpClient with proxy and credentials
CloseableHttpClient httpClient = HttpClients.custom()
.setRoutePlanner(routePlanner)
.setDefaultCredentialsProvider(credsProvider)
.build();
TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
client.setHttpClient(httpClient);
// Build a filter for the MessageList
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("Body", "Hello from Java"));
params.add(new BasicNameValuePair("To", "+12345678901"));
params.add(new BasicNameValuePair("From", "+12345678901"));
MessageFactory messageFactory = client.getAccount().getMessageFactory();
try {
Message message;
message = messageFactory.create(params);
System.out.println(message.getSid());
} catch (TwilioRestException e) {
System.out.println(e.getErrorCode());
System.out.println(e.getErrorMessage());
e.printStackTrace();
}
}
}
그것은 그것을 만드는 것 같다 프록시를 통해이과를하고 Twilio의 API에 도달하지만, 그것은 20003 error 모든 시간을 반환합니다.
나는 HTTP 클라이언트 웹 프록시 인증이 twilio 계정 SID 및 인증 토큰을 덮어 쓰고 있다고 의심하지만 확신이 없거나이 문제를 해결할 방법이 있는지 의심 스럽다.
나는 자신의 계정 SID와 인증 토큰을 세 번 검사했으며 또한 Twilio가 계정에 제공하는 "테스트"SID 및 인증 토큰을 사용하여 시도했지만 동일한 결과를 얻습니다.
웹 프록시를 통해 Twilio java-sdk를 실행하기위한 조언이 있습니까?
나는 아파치 HTTP 클라이언트 라이브러리를 사용하고 4.5.2