我需要从手机上读取代理信息,如果手机在代理下,我需要在我的spring restTemplate对象上设置这个代理.我尝试了以下代码没有任何运气,任何人都可以告诉我我在做什么错误.
String proxyHost = android.net.Proxy.getHost(activity
.getApplicationContext());
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, 8080));
requestFactory.setProxy(proxy);
RestTemplate rest = new RestTemplate(requestFactory);
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
我在我的android应用程序上使用restTemplate(来自spring android框架)通过post联系rest服务器,我使用AsyncTask发送请求和两个类Request和Response,它们是POJO以Json形式发送。
public class RequestSender extends AsyncTask<Object, Void, Response> {
private RestTemplate restTemplate = new RestTemplate();
private static final String SERVER_REQUEST_PATH = "/path/to/rest/service";
@Override
protected Response doInBackground(Object... args) {
String url = (String) args[0] + SERVER_REQUEST_PATH;
Request requestArgs = (Request) args[1];
Response response = null;
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
try {
response = restTemplate.postForObject(url, requestArgs, Response.class);
} catch (RestClientException e) {
e.printStackTrace();
response = null;
}
return response;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,代码非常简单,并且大部分时间都可以正常工作,但不是按特定顺序运行的:
然后服务器重启后的第一个请求(第 3 步)不是通过 postForObject(...) 方法发送到服务器的,而是接下来的请求。第一个请求给我一个错误:
07-10 10:24:13.402: W/System.err(4827): …Run Code Online (Sandbox Code Playgroud) 关于android for spring项目的一个小问题.我必须开发一个在Spring开发的服务器上使用RESTful Service的Android应用程序.现在开始使用spring for android是有用的吗?这个项目有未来吗?因为最后一个版本是2012年12月.
有没有关于如何开发必须使用restful服务的Android应用程序的好教程?
我有我的Gradle项目,并在build.gradle上声明我的依赖项:
dependencies {
compile 'com.android.support:support-v4:18.0.0'
compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'
compile 'org.springframework.android:spring-android-auth:1.0.1.RELEASE'
compile 'org.springframework.android:spring-android-core:1.0.1.RELEASE'
compile 'org.roboguice:roboguice:2.0'
Run Code Online (Sandbox Code Playgroud)
}
使用Gradle构建工作正常,但是当运行我的项目时,在编译阶段抛出以下错误:
Gradle: UNEXPECTED TOP-LEVEL EXCEPTION:
Gradle: java.lang.IllegalArgumentException: already added: Lorg/springframework/util/FileCopyUtils;
Gradle: at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122)
Gradle: at com.android.dx.dex.file.DexFile.add(DexFile.java:161)
Run Code Online (Sandbox Code Playgroud)
我使用Gradle 1.8.
我正在使用android spring REST模板从外部API中提取一些数据.那些API返回JSON字符串但响应内容类型是"text/html",如果内容类型是"application/json",我可以轻松地解析数据而没有任何问题,因为这些API是第三方API我无法更改内容类型的回应.
我正在使用"MappingJacksonHttpMessageConverter"类作为消息转换器.
当我尝试解析数据时,我遇到了异常.
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type .... and content type [text/html;charset=utf-8]
Run Code Online (Sandbox Code Playgroud)
是否有任何配置,参数或我可以解析这些JSON数据的东西?