标签: request

在 Rails 中发送 POST 请求

我将如何在 Rails 设置中以以下格式发送 HTTP POST 请求:

curl https://api.venmo.com/v1/payments -d access_token=4e4sw1111111111t8an8dektggtcbb45 -d     email="someemail@gmail.com" -d amount=5 -d note="Delivery."
Run Code Online (Sandbox Code Playgroud)

我想让用户将电子邮件/金额/注释参数输入到网页上的表单中,然后将该数据(当用户单击提交按钮时)传递到存储 access_token 参数的控制器中,然后触发 POST要求。

到目前为止,我已经尝试使用此方法设置控制器(并从视图 html.erb 调用它):

def make_payment
  if !params[:access_token].nil?

    form_data = {
        "email" => @email_to,
        "amount" => @amount_to,
        "note" => @note_to,
        "access_token" => :access_token
    }
    url = "https://api.venmo.com/v1/payments"
    request = Net::HTTP::Post.new(url, form_data)

    response = http.request(request)

   end
end
Run Code Online (Sandbox Code Playgroud)

这是我当前的视图设置:

  <div class="box box-warning">
                        <div class="box-header">
                          <h3 class="box-title">Pay Bill using Venmo Account</h3>
                            <div id="payment_note_input">
                            <input id="payment_note" type="text" class="form-control" required placeholder="add a note to your payment"> …
Run Code Online (Sandbox Code Playgroud)

model-view-controller post curl ruby-on-rails request

2
推荐指数
1
解决办法
2万
查看次数

如何使用查询字符串承诺 GET 请求?

我使用查询字符串参数成功发出请求:

// Works
var Promise = require("bluebird");
var request = Promise.promisifyAll(require("request"));

request.get({
    url: 'https://api.angel.co/1/tags/' + encodeURIComponent(friscoLocationTag) + '/startups', 
    qs: {
        access_token: myToken,
        order: 'popularity'
    },
    method: 'GET'
}, function(error, response, body){
    // request success
    console.log(body);
});
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试答应我的请求时,我失败了:

// Does Not Work
var Promise = require("bluebird");
var request = Promise.promisifyAll(require("request"));

request.get({
    url: 'https://api.angel.co/1/tags/' + encodeURIComponent(friscoLocationTag) + '/startups', 
    qs: {
        access_token: myToken,
        order: 'popularity'
    },
    method: 'GET'
}).then(function(error, response, body){
    console.log(body);
});
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

}).then(function(error, response, body){
   ^
TypeError: undefined is not a …
Run Code Online (Sandbox Code Playgroud)

javascript request node.js npm

2
推荐指数
1
解决办法
1万
查看次数

ElasticSearch:为什么query_string不区分大小写而通配符区分大小写?

为什么当您对字段执行 query_string 查询时,它不区分大小写,而通配符查询则区分大小写?我本以为两人的行为会很相似。

此 query_string 查询返回结果

{
  "query": {
    "bool" : {
      "must" : [ {
        "query_string" : {
          "query" : "name:*HILTON*"
        }
      } ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这个通配符查询没有

{
  "query": {
    "bool" : {
      "must" : [{
        "wildcard" : {
          "name" : "*HILTON*"
        }
      } ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

wildcard request elasticsearch

2
推荐指数
1
解决办法
4984
查看次数

使用 gulp 进行请求

我有以下内容Gulpfile.js

'use strict';

const gulp    = require('gulp'),
      request = require('request');

const paths = {
  vendor: [
    'https://raw.githubusercontent.com/jquery/jquery-dist/master/dist/jquery.min.js',
    'https://raw.githubusercontent.com/kenwheeler/slick/master/slick/slick.js'
  ]
};

gulp.task('vendor', (res) => {
  const url = request.get(paths.vendor).pipe(res);
  return gulp.src(url)
    .pipe(gulp.dest('public/vendor'));
});

gulp.task('default', gulp.parallel('vendor'));
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error: options.uri is a required argument
Run Code Online (Sandbox Code Playgroud)

通过这种方法,我试图阻止客户端包管理器,比如 Bower。有没有办法使用requestgulp循环对象列表?

编辑:

我放置此代码进行测试,仅返回循环中的第一行:

gulp.task('vendor', () => {
  for (let i=0; i<paths.vendor.length; i++) {
    return console.log(paths.vendor[i]);
  };
});
Run Code Online (Sandbox Code Playgroud)

就像:

gulp.task('vendor', (res) => {
  const url = request.get(paths.vendor[index++]).pipe(res);
  return gulp.src(url)
    .pipe(gulp.dest('public/vendor'));
});
Run Code Online (Sandbox Code Playgroud)

javascript request node.js gulp

2
推荐指数
1
解决办法
3970
查看次数

RabbitMQ 请求/响应负载结构

我正在设计一个系统,它将使用 RabbitMQ 在应用程序之间进行请求/响应。

我习惯于使用 REST API,并且从这个背景出发,我一直在思考如何在执行请求/响应时构造消息。

我需要构建它来处理几种情况:

  • 从远程服务器获取/查询数据
  • 在远程服务器上创建数据
  • 处理客户端错误

我计划将有效负载 JSON 格式化。我正在考虑使用某种类似于 HTTP 的响应代码(也许使用相同的代码?)并将响应代码设置为消息上的属性/标头。

对于获取/查询,我的想法是在有效负载对象中拥有一个查询属性。

但这让我想到,我可能认为这太像 REST API,并且可能有一些更好、更成熟的方法来做到这一点。

在进行设置时,我一直在阅读《RabbitMQ in Action》一书,但我没有看到其中提到这一点。我的 google-fu 也让我失败了,没有提供任何结果。

有经验的人愿意分享他们如何构建信息吗?

response message-queue request rabbitmq data-structures

2
推荐指数
1
解决办法
1431
查看次数

Python 3.6 urllib 为什么行以 b 开头

我正在使用 python 3,并且不明白为什么输出在每个行的开头都有 b 。我不认为 python 2 是这种情况。为什么会这样以及如何删除它?谢谢

import urllib
# fhand = urllib.urlopen('http://www.py4inf.com/code/romeo.txt') in Python 2
fhand = urllib.request.urlopen('http://www.py4inf.com/code/romeo.txt')
for line in fhand:
    print(line.strip())
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样

b'But soft what light through yonder window breaks'
b'It is the east and Juliet is the sun'
b'Arise fair sun and kill the envious moon'
b'Who is already sick and pale with grief'
Run Code Online (Sandbox Code Playgroud)

urllib request urlopen python-3.x

2
推荐指数
1
解决办法
3264
查看次数

使用 thephpleague/oauth2-client 发出 POST 请求

我正在尝试使用 phpleague/oauth2-client 和 adespresso/oauth2-getresponse 作为提供商向 GETResponse API(https://apidocs.getresponse.com/v3/case-study/adding-contacts)发出 POST 请求,如下所示:

  $data = [
            'email' => $email,
            'campaign' => [
                'campaignId' => $campId
            ]
        ];
    $request = $this->provider->getAuthenticatedRequest(
                        'POST',
                        'https://api.getresponse.com/v3/contacts',
                        $this->getMyAccessToken(),
                        $data
            );
    $response = $this->provider->getParsedResponse($request);
Run Code Online (Sandbox Code Playgroud)

我还尝试在标头中传递 application/json 的内容类型值,但没有成功。

$data = [ 'email' => $email, 'campaign' => [ 'campaignId' => $campId ] ];

    `$options['body'] = json_encode($data);
    $options['headers']['Content-Type'] = 'application/json';
    $options['headers']['access_token'] = $this->getMyAccessToken();
    $request = $this->provider->getAuthenticatedRequest(
                        'POST',
                        'https://api.getresponse.com/v3/contacts',
                        $options
            );
    $response = $this->provider->getParsedResponse($request); `
Run Code Online (Sandbox Code Playgroud)

然而,两种方法中的 getParsedResponse 函数都会返回以下内容:

League \ OAuth2 \ …
Run Code Online (Sandbox Code Playgroud)

request getresponse oauth-2.0 guzzle guzzle6

2
推荐指数
1
解决办法
2462
查看次数

Marvel API 409 响应,“您必须提供用户密钥”

想知道是否有人可以在这里帮助我:

    private static func getURLRequestData(completion: @escaping (Data?) -> ()) {

    // Gets the raw JSON Data

    let session = URLSession(configuration: .default)
    guard let url = URL(string: urlString) else { return }
    var urlRequest = URLRequest(url: url)

    let headers = [
        "ts" : ts,
        "apikey" : apiKey,
        "hash" : hash,
        "limit" : limit,
        "orderBy" : orderedBy
    ]

    urlRequest.allHTTPHeaderFields = headers

    let task = session.dataTask(with: urlRequest) { (data, response, error) in

        if error != nil {
            print(#line, error!.localizedDescription)
        }

        print(response)
        completion(data)
    } …
Run Code Online (Sandbox Code Playgroud)

url request swift

2
推荐指数
1
解决办法
3047
查看次数

okhttp3 - 413 请求实体太大

当我的系统使用 okhttp3 发送 http 请求时,会出现以下问题:413 Request Entity Too Large

我想知道如何在 okhttp3 请求中设置最大大小,或者是否有其他解决方案来解决此问题。

public static String post(String url, String json) throws IOException {
    OkHttpClient client = new OkHttpClient().newBuilder()
            .readTimeout(1, TimeUnit.MINUTES)
            .build();
    RequestBody body = RequestBody.create(JSON, json);
    Request request = new Request.Builder()
    .header("Authorization", authKey)
    .url(url)
    .post(body)
    .build();
    try (Response response = client.newCall(request).execute()) {
        if(response.code() != 200) {
            return "request error";
        }
        return response.body().string();
    }
}
Run Code Online (Sandbox Code Playgroud)

java request okhttp http-status-code-413

2
推荐指数
1
解决办法
7560
查看次数

为了优化性能,我应该将 Web 数据存储为 CSV 还是 JSON?

我正在使用一个对于网络用户(尤其是智能手机用户)来说相对较大的数据集。我担心表现。对于用户来说哪个问题更大?

\n\n
    \n
  1. 强制客户端浏览器获取/请求大数据文件 ( JSON)。
  2. \n
  3. 强制客户端的浏览器将较小的文件 ( CSV) 重新格式化为较大的文件 ( JSON) 以便可以使用。
  4. \n
\n\n

当我将数据编译为 时JSON,它大约为570KB \xe2\x80\x93,远远大于我通常使用的大小。这被直接剥离了(例如,我已将每个键减少为单个字符)。

\n\n

当我将数据编译为 时CSV,大约为220KB。但是,无论如何,我都需要浏览器将其重新JSON格式化。

\n\n

这是一个小例子。一份CSV文件:

\n\n
"year","birth","101","102","103","104","105"\n1981,"Australia",5972,1099,573,747,667\n1981,"China",141,4,3,2,2\n1981,"India",139,5,4,6,2\n1981,"Indonesia",371,9,14,5,6\n1981,"Malaysia",838,72,42,11,14 \n
Run Code Online (Sandbox Code Playgroud)\n\n

...与相同数据相比JSON

\n\n
[{"year":1981,"birth":"Australia","101":5972,"102":1099,"103":573,"104":747,"105":667},\n{year":1981,"birth":"China","101":141,"102":4,"103":3,"104":2,"105":2},\n{year":1981,"birth":"India","101":139,"102":5,"103":4,"104":6,"105":2},\n{year":1981,"birth":"Indonesia","101":371,"102":9,"103":14,"104":5,"105":6},\n{year":1981,"birth":"Malaysia","101":838,"102":72,"103":42,"104":11,"105":14}]\n
Run Code Online (Sandbox Code Playgroud)\n\n

TLDR:对于性能来说,哪一个更重要:(1) 最小化数据文件的大小,或 (2) 最小化浏览器必须执行的数据处理量?

\n

javascript csv performance json request

2
推荐指数
1
解决办法
3075
查看次数