RestTemplate - 对“https://api.twitter.com/oauth/request_token”的POST请求导致406(不可接受);调用错误处理程序

时间:2013-01-12 17:44:38

标签: spring code-signing spring-social

从早上开始,我正在努力解决如何在我的webApp(Spring-MVC)和Spring-Social之间实现SignIn功能的问题。 我正在使用XML配置,看起来效果很好。我遇到麻烦签到用于例如twitter。我告诉你我的堆栈跟踪打印出来:

InvocableHandlerMethod - Invoking [signIn] method with arguments [twitter, ServletWebRequest: uri=/SitiPreventivi/signin/twitter;client=127.0.0.1;session=6EE8AE04F40C32C823646844BF36378B]
2013-01-12 18:21:16,168 DEBUG [http-bio-8080-exec-7] HttpAccessor - Created POST request for "https://api.twitter.com/oauth/request_token"
2013-01-12 18:21:16,169 DEBUG [http-bio-8080-exec-7] RestTemplate$AcceptHeaderRequestCallback - Setting request Accept header to [application/x-www-form-urlencoded, multipart/form-data]
2013-01-12 18:21:17,317 WARN [http-bio-8080-exec-7] RestTemplate - POST request for "https://api.twitter.com/oauth/request_token" resulted in 406 (Not Acceptable); invoking error handler
2013-01-12 18:21:17,326 DEBUG [http-bio-8080-exec-7] InvocableHandlerMethod - Method [signIn] returned [org.springframework.web.servlet.view.RedirectView: unnamed; URL [/signin?error=provider]]
2013-01-12 18:21:17,326 DEBUG [http-bio-8080-exec-7] DispatcherServlet - Rendering view [org.springframework.web.servlet.view.RedirectView: unnamed; URL [/signin?error=provider]] in DispatcherServlet with name 'SitiPreventivi Servlet'
2013-01-12 18:21:17,326 DEBUG [http-bio-8080-exec-7] AbstractView - Rendering view with name 'null' with model {} and static attributes {}

我告诉你关于我的问题的相关部分。 正如您所看到的那样,发出了对正确URL的发布请求,但是我收到了406错误,我无法解释。 有没有办法解决问题?

提前致谢。

克劳迪奥

1 个答案:

答案 0 :(得分:3)

我通过在Twitter应用程序设置上设置回调URL来解决此问题。

您可以找到更多详情here

值得注意的是,twitter不接受回调URL为localhost:8080 ...因此,如果您希望回调URL为localhost,则可以编辑计算机上的Host文件并添加localhost名称解析。 E.g:

127.0.0.1 local.your-domain.com

然后,您可以将回调网址设置为http://local.your-domain.com:8080/