Rails 微信 API 超时

hxh1246996371 · 发布于 2015年07月08日 · 最后由 kevin_isky 回复于 2017年08月04日 · 1338 次阅读
10401

我在网页授权获取access_token这一步发了一个post请求。但是微信老是返回超时。服务器是部署在阿里云上的,做了负载均衡。

_uri = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=#{Rails.application.config.wechart_renren_appid}&secret=#{Rails.application.config.wechart_renren_appsecret}&code=#{params[:code]}&grant_type=authorization_code"
_url = URI(_uri)
_http = Net::HTTP.new(_url.host, _url.port) 
_http.use_ssl = true
 _req = _http.post(_url.request_uri,'');

我在服务器终端去 curl 这个地址,都能得到返回的。找了很久都没找到原因,各位有谁遇到过类似问题吗?

共收到 9 条回复
96

这个接口要用GET请求,curl 如果没有指定参数的话也是默认的GET请求吧。

10401

#1楼 @w7938940 get post 都行吧

96

#2楼 @hxh1246996371 试了一下,果然都可以,但是两种方法都没有超时,用的RestClient发送的请求。

10401

#3楼 @w7938940 RestClient 应该也是调用的Net::HTTP吧 能麻烦你把代码贴出来看看吗

96

#4楼 @hxh1246996371

response = RestClient::Request.execute({
    :method => :get,
    :url => "https://api.weixin.qq.com/sns/oauth2/access_token?appid=#{appid}&secret=#{secret}&code=#{code}&grant_type=authorization_code"
      })
response = ActiveSupport::JSON.decode(response)
10401

#5楼 @w7938940 好的,谢谢 我试试

96

@hxh1246996371 请问这个问题最后解决了么?是什么原因引起的呢?

10401

#7楼 @dabing1022 实在不好意思,忘了当初是什么原因造成的

26612

也遇到了后端请求微信API超时的问题,一般会先做下链路问题的排查,有时候会是因为线路的节点问题造成的,链路问题具体的排查方法和后续处理我整理到这里了https://github.com/kevin-isky/blog/issues/2

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册