问题标签 [spring-android]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4256 浏览

android - Android Spring RestTemplate with Proxy

i need to read the proxy information from the phone and if the phone is under a proxy i need to set this proxy on my spring restTemplate object.I've tried the follow code without any luck, could anyone tell me what i'm doing wrong.

Thanks for any help

0 投票
3 回答
10102 浏览

android - 服务器重新启动时的restTemplate ResourceAccessException

我在我的android应用程序上使用restTemplate(来自spring android框架)来联系一个带有post的rest服务器,我使用一个AsyncTask来发送请求和两个类Request和Response,它们是以Json形式发送的POJO。

如您所见,代码非常简单,并且大部分时间都可以正常工作,但不是按特定顺序:

  1. 我向服务器发出第一个(或更多)请求;
  2. 我重新启动服务器而不重新启动应用程序;
  3. 我向服务器发出新请求;

然后服务器重启后的第一个请求(步骤 3)不会通过 postForObject(...) 方法发送到服务器,但下一个请求是。这第一个请求给我一个错误:

即使用例并不重要,我想知道为什么会抛出这个错误,我的实现是否有问题,或者它是 RestTemplate 的正常行为?

0 投票
2 回答
1928 浏览

android - 如何将 POST 请求从 Android 应用程序发送到 Rails 应用程序?

我从 Android 应用程序向我的 Rails 应用程序发送 POST 请求时遇到问题(使用 Spring for Android)

我有以下 Rails 控制器:

我正在发送 POST 请求(使用 Spring for Android):

字符串请求的值为 {"email":"test@fromandroid.com","name":"testName"}

并且 createUserUrl 的值为:http://10.0.0.2:3000/users

但是,我仍然收到以下错误:

我可以发送 GET 请求,但 POST 不起作用。我究竟做错了什么?我使用 CURL 来获得更好的错误消息,它返回:

所以问题可能出在 REST API 接受的必需用户和可选名称和电子邮件参数上,但是我应该如何在 json 中格式化用户以使其正常工作?

非常感谢您的帮助!

0 投票
3 回答
1958 浏览

java - Spring(适用于 Android)和 Jackson2:PUT 为 application/x-www-form-urlencoded

我对 Android 上的 HTTP REST 操作有些陌生,我正在使用的服务器使用 PUT 命令来处理更新。我很难将 Spring(适用于 Android)与 Jackson2 一起使用。服务器似乎不适用于application/jsonput 请求(尽管它会回复它们),并且似乎只适用于application/x-www-form-urlencoded版本(使用 python 和 curl 测试。在 python 上,如果我将标头类型设置为application/json,它会失败。

我正在使用最新版本的 Spring 和 Jackson2,并且我知道一切设置正确,因为我在同一个 URL 上的 get 请求为我提供了所有正确的信息。

我正在使用 Robospice,但我真的不认为这是相关的。这是我的请求代码。

我收到异常说明它找不到转换的方法:

GPIO 是我的 POJO 对象。我想将它“放入”服务器,就像序列化并放入它一样。

我查看了以下似乎相当相关的问题:

但是,我需要 put 命令的结果,这需要我使用exchange(),因为 Springput()什么都不返回。

我尝试了几个不同的项目(例如删除 GPIO 引用、设置特定的头...),但似乎没有一个工作。我有一种感觉,这可能是一个我不知道如何解决的简单解决方案。如果有人可以帮助我,那就太好了。

TLDR:我将 Spring for Android 与 Jackson2 一起使用。我想序列化我的对象(在本例中为 GPIO),以便可以使用内容类型 application/x-www-form-urlencoded 执行 PUT 请求。但是我无法让杰克逊转换为该类型,只能转换为 application/json,这对我不起作用。我不知道如何解决这个问题,而且我已经没有想法了。如果我找不到解决方案,我可能不得不让 robospice 变笨。(或杰克逊,还不确定哪个。)

解决方案

Spring for Android 似乎并没有简化事情,所以我将它转储并直接在我的 loadDataFromNetwork() 方法中使用了 apache 客户端。Robospice 处理得很好,我可以得到我需要的响应。如果您像我一样花时间学习 apache 客户端,是 HTTP 的新手,我认为这要容易得多。调整 ObjectMapper(比如创建一个 JsonTree 并对其进行解析)可以更轻松地获取我需要的数据,而无需对 POJO 对象做太多工作。

0 投票
1 回答
1021 浏览

android - Android RestTemplate exchange() 抛出 HttpClientErrorException: 401 Unauthorized

我正在尝试从 Android 客户端连接到 RESTful Web 服务。

但是,我总是得到一个HttpClientErrorException: 401 Unauthorized even if provide the correct authorization token in the request header.

提供的网址是正确的。

我也试过这个请求工厂:

如果我使用具有相同标题和 url 的 Postman for Chorme,我会得到响应。

这是我的代码:

0 投票
2 回答
3331 浏览

android - Android Studio + Gradle:java.lang.IllegalArgumentException

我有我的 Gradle 项目并声明我对 build.gradle 的依赖项:

}

使用 Gradle 构建工作正常,但是当运行我的项目时,在编译阶段会抛出以下错误:

我使用 Gradle 1.8。

0 投票
1 回答
1183 浏览

java - Spring Android Twitter 回调 URL

我需要使用 Twitter API 在我的 Android 应用程序中实现 OAuth 登录。我在 GitHub 上找到了一个很棒的项目(spring-android-samples ) 上找到了一个很棒的项目,其中有一个很好的例子,但是我对参数“回调 URL”有一个问题。

当我提交登录名和密码时,我的 android 应用程序会打开一个浏览器实例(带有回调 URL),而不是在后台处理响应:

在此处输入图像描述

有没有人必须实施类似的东西,可以帮助我吗?谢谢!

0 投票
0 回答
6702 浏览

android - 如何使用 STS、Android SDK、Maven 和 Spring Android 设置 Android 开发环境

  1. 安装最新的 STS(目前为 3.4.0)
  2. 按照现有 IDE 的常规 Android 开发设置步骤在 STS 中设置您的 Android 开发环境:http: //developer.android.com/sdk/installing/index.html
  3. 对于上述步骤,您可以通过从另一个已经设置了环境的开发人员那里复制“android-sdk”文件夹来节省时间,并将您的 STS 指向该 android 文件夹(Window-->Preferences-->Android-->SDK地点)
  4. 按照以下方式安装 m2e-android:http ://rgladwell.github.io/m2e-android/

使用 Maven 创建示例 Android 应用程序

  1. 在 STS 中,点击 File-->New-->Maven Project
  2. 选择您的工作区位置,然后单击下一步
  3. 对于 Maven Archetype,选择“android-quickstart”并单击 Next。如果您根据以下内容添加原型,则此原型应该存在:http ://rgladwell.github.io/m2e-android/
  4. 填写所需的 Maven 项目详细信息,然后单击下一步。
  5. 在 pom.xml 中,将“platform.version”标记值设置为 4.1.1.4
  6. 右键单击项目并选择构建项目。
  7. 右键单击项目并选择 Run As  Android Application。
  8. 它应该启动您的 Android 模拟器并部署“Hello World”应用程序。

在 Android 应用程序中使用 Spring Android 库:

  1. 由于我们使用 Maven,请按照此处的说明配置您的依赖项:http ://projects.spring.io/spring-android
  2. 按原样使用上述依赖项似乎存在错误。尝试在 STS 中运行 Android 应用程序时出现错误,它显示“多个 dex 文件定义 Lorg/springframework/core/ErrorCoded”。这意味着在类路径中引用了重复的类。为避免此错误,请删除 maven 依赖元素“spring-android-auth”。

使用 Spring Android 库中的 RestTemplate:

  1. 参考文档为您提供所需的一切:http: //docs.spring.io/spring-android/docs/1.0.1.RELEASE/reference/html/rest-template.html
  2. 请记住,您的 Android 应用程序必须注册正确的消息转换器。例如:restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
  3. 请注意,您的 Android 应用程序必须包含使用权限“android.permission.INTERNET”以允许网络调用。
0 投票
1 回答
3149 浏览

android - Spring Android REST 模板使用内容类型 text/html 解析 JSON 数据

我正在使用 android spring REST 模板从外部 API 中提取一些数据。这些 API 返回 JSON 字符串,但响应内容类型为“text/html”,如果内容类型为“application/json”,我可以轻松解析数据而不会出现任何问题,因为此 API 是第 3 方 API,我无法更改内容类型的回应。

我使用“MappingJacksonHttpMessageConverter”类作为消息转换器。

当我尝试解析数据时,我遇到了异常。

是否有任何配置、参数或可以解析这些 JSON 数据的东西?

0 投票
1 回答
1160 浏览

java - spring android resttemplate编码url

我使用 Spring androidRestTemplate对 Youtube API 执行 GET 请求,如下所示:

从调试中,我可以看到RestTemplate执行错误的 url,我得到了400 bad request error

03-16 12:06:47.651: W/RestTemplate(24970): GET 请求“ https://www.googleapis.com/youtube/v3/channels?key=MY_KEY&part=id%252Csnippet&forUsername=cnn ”导致 400 (错误的请求); 调用错误处理程序

我不知道为什么RestTemplate要再次尝试对参数 url 进行编码,从id%2Csnippettoid%252Csnippet
有没有办法纠正它?