Articles of spring

带有参数的Spring RestTemplate HTTP Post会导致400错误的请求错误

可能重复需要有关身体参数的RestTemplate Post Request的帮助吗? 和Spring RESTtemplate POST但这些答案对我不起作用 我试图通过Spring Android从Instagram API获取访问令牌。 Instagram的文档请求如下: curl \-F ‘client_id=CLIENT-ID’ \ -F ‘client_secret=CLIENT-SECRET’ \ -F ‘grant_type=authorization_code’ \ -F ‘redirect_uri=YOUR-REDIRECT-URI’ \ -F ‘code=CODE’ \https://api.instagram.com/oauth/access_token 这是我的请求访问令牌(在我获得请求令牌成功后): MultiValueMap mvm = new LinkedMultiValueMap(); mvm.add(“client_id”, INSTAGRAM_CILENT_ID); mvm.add(“client_secret”, INSTAGRAM_SECRET); mvm.add(“grant_type”, “authorization_code”); mvm.add(“redirect_uri”, CALLBACKURL); mvm.add(“code”, requestToken); InstagramResult result = restTemplate .postForObject(“https://api.instagram.com/oauth/access_token”, mvm, InstagramResult .class); 结果映射类: public class InstagramLogin { […]

我为什么要使用Spring Android?

这里有人使用Spring Android吗? 如果是这样,为什么你认为它值得呢? 谢谢

无法在Spring 3 REST Webservice中的START_ARRAY标记中反序列化对象的实例

我正在利用Spring提供的这个很酷的东西:Spring RESTWebService(spring的版本是3)。 如果我从浏览器访问URL,我可以看到JSON响应,但是从客户端端点(Android应用程序)iIreceive这个错误消息: Caused by: org.springframework.web.client.ResourceAccessException: I/O error: Can not deserialize instance of MyObject out of START_ARRAY token at [Source: org.apache.http.conn.EofSensorInputStream@4076e940; line: 1, column: 1]; nested exception is org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of MyObject out of START_ARRAY token at [Source: org.apache.http.conn.EofSensorInputStream@4076e940; line: 1, column: 1] at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:466) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:414) at org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:234) at com.be.android.locateconsultants.resources.AsyncTaskRESTServiceCaller.doInBackground(AsyncTaskRESTServiceCaller.java:43) at […]

ClassCastException:RestTemplate返回List 而不是List

我正在尝试访问MyModelClass上的getter方法,但我的代码返回List而不是List 。 这是我的代码。 List myModelClass=(List) restTemplate.postForObject(url,mvm,List.class); System.out.println(“Response= ” + myModelClass); 我试图打印响应,我得到了我期待的JSON响应。 但是当我试图运行这段代码时。 System.out.println(“Response= ” + myModelClass.get(0).getMessage()); 它会产生这个错误。 java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.XXX.XXX.MyModelClass 这是一个不匹配。 有人可以帮我摆脱这个错误吗? 谢谢。 MyModelClass public class MyModelClass{ /** * */ @JsonProperty(“id”) public String id; @JsonProperty(“type”) public String type; @JsonProperty(“user”) public String user; @JsonProperty(“message”) public String message; //getters 错误 MyModelClass[] myModelClass= restTemplate.postForObject(url,mvm, […]

jackson JsonParseException:无效的UTF-8中间字节

当jackson引擎尝试解析来自服务器的json响应时,会发生此错误。 我使用Spring Android来串行/反序列化json中的对象。 此问题似乎与默认编码UTF-8有关。 有人知道如何告诉引擎它应该期待与UTF-8不同的东西,如UTF-16吗? HttpHeaders requestHeaders = createSomeHeader(); RestTemplate restTemplate = new RestTemplate(); HttpEntity requestEntity = new HttpEntity(requestHeaders); String url = “someurl” ResponseEntity arrayResponseEntity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, MyObject[].class); 错误日志: Caused by: org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Invalid UTF-8 middle byte 0x20 at [Source: org.apache.http.conn.EofSensorInputStream@44d397b0; line: 92, column: 42]; nested exception is org.codehaus.jackson.JsonParseException: Invalid […]

将iOS和Android客户端连接到SockJS后端

我正在使用Spring WebSockets开发WebSocket消息传递后端,它使用SockJS + STOMP协议。 不使用普通WebSockets的原因是因为我需要利用SockJS在Spring WebSockets中提供的安全集成以及SockJS的其他整洁function,例如房间,订阅等。我想知道这是否是一个很好的选择这样移动(iOS和Android)和Web客户端应用程序可以轻松连接到后端服务器并执行消息传递。 如果是,那么我可以使用哪些库用于iOS和Android。 在SockJS GitHub页面上,他们还列出了可用的客户端库,但没有iOS和Android。 所以,我想知道SockJS是否因此而值得使用。 我发现对于iOS客户端Primus-Objc ( GitHub页面 )库声称它们可以连接到native WebSockets, Socket.IO, SockJS or perhaps engine.io. 这是一个真实的陈述吗? 如果那是真的那么事件,那个图书馆的质量怎么样? 事件如果可以在后面使用SockJS,那么是否也可以显示iOS和Android的示例代码,以便我可以在移动设备上执行概念validation? 如果SockJS对我来说不是一个好选择,那么用Socket.io + Node.js(使用JavaScript)构建我的消息传递应用程序会更好吗? 在我看来,Socket.io有所有需要的iOS客户端库( Socket.IO的官方库 )和Android( Socket.IO的官方库 )。 另一种选择可以是使用Netty-Socket.io库并手动构建每个端点,而无需Spring Framework(我正在考虑使用)的任何帮助,但是我必须解决的是小问题,即安全问题。 实际上有人已经尝试过这样做 ( 同一位作者在Netty-Socket.IO Github官方网页上提问 )但看起来他还没有运气解决它。

HttpMessageNotReadableException:无法读取JSON:使用Spring for Android无法识别的字段

我正在开发和与我的服务器通信的Android应用程序。 这个沟通是通过Spring框架和Jackson完成的。 我发送一个请求我的服务器成功,但我没有得到答复。 这是我所做的: Android应用程序: public Loja getLoja() { RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter()); restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory()); String url = BASE_URL + "/android/played.json"; return restTemplate.getForObject(url, Loja.class); } Loja类(我有两个版本,一个在Android应用中,另一个在Server中,它们是完全一样的): public class Loja { private String nome; private String xValue; private String yValue; private String andar; public Loja(String nome, String xValue, String yValue, String andar) { […]

使用spring的压缩jpeg字节数组制作多部分发布请求

我一直在我的android应用程序成功地使用了android的spring来获取/发布数据到服务器。 现在,我不得不做一个多部分表单的请求,但我一直无法按照我想要的方式工作。 使用案例:1.从图库中select一张照片2.使用文件源将其加载到位图3.将位图压缩为ByteArrayOutputStream 4.将字节数组(ByteArrayOutputStream.toByteArray())传递到服务器。 (我需要发送这个jpeg而不是application / octet-stream) 上传照片的服务器端点接受一个MultipartFile只有以下MIMEtypes(注意,它不接受MimeType:application / octet-stream ): GIF("image/gif") PNG("image/png", "image/x-png") JPG("image/jpeg", "image/jpg", "image/pjpeg") BMP("image/bmp") 我试过使用示例代码 ,但到目前为止还没有成功。 使用下面的代码,我得到以下错误:org.springframework.web.bind.MissingServletRequest ParameterException:所需的MultipartFile参数'文件'不存在 对此事的帮助非常感谢。 感谢并保持良好的工作。 这是我的代码: bitmap = BitmapFactory.decodeFile("/mnt/sdcard/DCIM/Camera/20130205_162546.jpg"); ByteArrayOutputStream bos = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.JPEG, 60, bos); byte[] data = bos.toByteArray(); // populate the data to post MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>(); formData.add("caption", "Test […]

从Android设备对Spring Security Rest API进行身份validation

我有一个REST-API的SPRING后端。 它由用户名和密码保护。 当我打开它与我的电脑浏览器,首先login屏幕显示,我添加凭据后,我可以访问api fluendly。 当我通过一个Android应用程序尝试相同的时候,我得到每一次提到login屏幕。 要在Android端进行authentication,我使用默认可访问的REST API请求。 内部Android应用程序浏览器不兼容存储会话Cookie? 每次都会创build一个新的HTTP会话。 即时通讯使用Volley的请求 弹簧security.xml文件 <http auto-config="true" use-expressions="true"> <intercept-url pattern="/api/user/login" access="permitAll" /> <!–IS_AUTHENTICATED_ANONYMOUSLY–> <intercept-url pattern="/admin/**" access="hasAnyRole('ROLE_ADMIN','ROLE_GROUP_LEADER')" /> <intercept-url pattern="/api/**" access="hasAnyRole('ROLE_USER','ROLE_ADMIN','ROLE_GROUP_LEADER')" /> <form-login login-page="/login" default-target-url="/admin" authentication-failure-url="/login?error" username-parameter="username" password-parameter="password" /> <access-denied-handler error-page="/403" /> <logout logout-success-url="/login?logout" /> </http> <authentication-manager alias="authManager"> <authentication-provider > <password-encoder ref="encoder" /> <jdbc-user-service data-source-ref="dataSource" users-by-username-query= "select username,password, enabled from […]

在服务器端用Spring框架在Android中设置一个Stomp客户端

我正在开发一个android应用程序,它与在Spring中configuration的jetty服务器交换数据。 为了获得一个更加dynamic的android应用程序,我试图用Stomp消息使用WebSocket协议。 为了实现这个东西,我在springconfiguration了一个web socket消息代理: @Configuration //@EnableScheduling @ComponentScan( basePackages="project.web", excludeFilters = @ComponentScan.Filter(type= FilterType.ANNOTATION, value = Configuration.class) ) @EnableWebSocketMessageBroker public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/message"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/client"); } } 和一个SimpMessageSendingOperations在Spring控制器中发送消息从服务器到客户端: @Controller public class MessageAddController { private final Log log = LogFactory.getLog(MessageAddController.class); private SimpMessageSendingOperations […]