Tag: http post

rails设计httpvalidation移动设备

我正在尝试在使用Devise gem的rails app上validation我的服务器ruby的android客户端应用程序。 但我已经尝试过http身份validation,并发布了身份validation请求,服务器只响应任何给定用户名/密码200。 我已经在用户模型中设置了config.http_authenticatable = true和:database_authenticable … 我会发布我的身份validation方法,所以你们可以看看它… public static boolean authenticate(User user, String verb) throws IOException, JSONException { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(verb); CredentialsProvider credProvider = new BasicCredentialsProvider(); credProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials(user.getMail(), user.getPassword())); httpClient.setCredentialsProvider(credProvider); List nameValuePairs = new ArrayList(); nameValuePairs.add(new BasicNameValuePair(“email”, user.getMail())); nameValuePairs.add(new BasicNameValuePair(“password”, user.getPassword())); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); […]

如何在Rails中解析传入的POST请求的json?

我有以下问题。 Web服务正在向我的应用程序发送JSON POST请求,我想解析它。 我以为我可以用它来访问params @var = params[:name_of_the_JSON_fields] 但它不起作用。 我在我的Heroku日志中看到请求已完成并且参数在那里,但我无法存储它们。 有没有人有想法?

validationShopify webhook

我认为要让Shopify webhook与Rails应用程序集成,Rails应用程序需要禁用默认的verify_authenticity_token方法 ,并使用X_SHOPIFY_HMAC_SHA256标头实现自己的身份validation。 Shopify文档说只使用request.body.read 。 所以,我做到了: def create verify_webhook(request) # Send back a 200 OK response head :ok end def verify_webhook(request) header_hmac = request.headers[“HTTP_X_SHOPIFY_HMAC_SHA256”] digest = OpenSSL::Digest.new(“sha256”) request.body.rewind calculated_hmac = Base64.encode64(OpenSSL::HMAC.digest(digest, SHARED_SECRET, request.body.read)).strip puts “header hmac: #{header_hmac}” puts “calculated hmac: #{calculated_hmac}” puts “Verified:#{ActiveSupport::SecurityUtils.secure_compare(calculated_hmac, header_hmac)}” end Shopify webhook指向正确的URL,路由将其提供给上面显示的控制器方法。 但是当我发送测试通知时,输出不正确。 两个HMAC不相等,因此未经validation。 我很确定问题是Shopify使用整个请求作为身份validation哈希,而不仅仅是POST内容。 所以,我需要原始的,未触及的HTTP请求,除非我弄错了。 在至少一个小时的搜索之后, 这个问题似乎是互联网上唯一有希望的事情。 这正是我所要求的,它有30个upvotes接受的答案。 但他的回答……很荒谬。 […]

Rails 3获取原始发布数据并将其写入tmp文件

我正在努力实现Ajax-Upload以在我的Rails 3应用程序中上传照片。 文件说: 对于IE6-8,Opera,其他浏览器的旧版本,您可以像平常的基于表单的上传一样获得该文件。 对于使用进度条上传文件的浏览器,您需要获取原始发布数据并将其写入文件。 那么,我如何在控制器中接收原始发布数据并将其写入tmp文件,以便我的控制器可以处理它? (在我的情况下,控制器正在进行一些图像处理并保存到S3。) 一些额外的信息: 正如我现在配置的那样,post正在传递这些参数: Parameters: {“authenticity_token”=>”…”, “qqfile”=>”IMG_0064.jpg”} …并且CREATE操作如下所示: def create @attachment = Attachment.new @attachment.user = current_user @attachment.file = params[:qqfile] if @attachment.save! respond_to do |format| format.js { render :text => ‘{“success”:true}’ } end end end …但是我收到了这个错误: ActiveRecord::RecordInvalid (Validation failed: File file name must be set.): app/controllers/attachments_controller.rb:7:in `create’

从G-WAN / Ruby获取POSTed数据

有没有办法从G-WAN Ruby获取POST数据? 我试过了: ENV.each do |k,v| puts “#{k} => #{v} ” end exit(200) 并使用以下方法测试: curl -d ‘test2=1’ ‘http://127.0.0.1:8080/?test.rb&test=1’ | gunzip – 但是没有显示的post数据(test2): GATEWAY_INTERFACE => CGI/1.1 CONTENT_TYPE => urlencoded REMOTE_HOST => 127.0.0.1 USER => lab-hci-48 REMOTE_ADDR => 127.0.0.1 QUERY_STRING => test.rb&test=1 CONTENT_LENGTH => 7 PATH_TRANSLATED => /home/lab-hci-48/gwan/0.0.0.0_8080/#0.0.0.0/csp REQUEST_URI => POST /?test.rb&test=1 SERVER_SOFTWARE => G-WAN PATH => […]