标签: http-get

在响应HTTP GET时返回202"Accepted"是错误的吗?

我有一组资源,其表示被懒惰地创建.构建这些表示的计算可能需要几毫秒到几个小时,具体取决于服务器负载,特定资源和月亮的相位.

收到的第一个GET请求开始在服务器上进行计算.如果计算在几秒钟内完成,则返回计算的表示.否则,返回202"已接受"状态代码,客户端必须轮询资源,直到最终表示可用.

出现这种情况的原因如下:如果结果在几秒钟内可用,则需要尽快检索; 否则,当它变得可用时并不重要.

由于内存有限和请求量很大,NIO和长轮询都不是一个选项(我无法保持足够的连接打开,甚至我甚至无法将所有请求都放在内存中;一次"几秒钟"已经过去了,我坚持多余的要求).同样,客户端限制使得它们无法处理完成回调.最后,请注意我对创建一个POST的"工厂"资源不感兴趣,因为额外的往返意味着我们的分段实时约束超出了预期(此外,它是额外的复杂性;此外,这是一种资源,受益于缓存).

我想在返回202"接受"状态代码以响应GET请求方面存在一些争议,因为我在实践中从未见过它,并且它最直观的用法是回应不安全的方法,但我从来没有发现任何特别令人沮丧的事情.而且,我不保持安全和幂等性吗?

那么,人们对这种方法有何看法?

编辑:我应该提到这是一个所谓的商业网络API - 不适用于浏览器.

http-get http-status-codes

80
推荐指数
3
解决办法
4万
查看次数

[AcceptVerbs(HttpVerbs.Post)]和[HttpPost]有什么区别?

我可以用[AcceptVerbs(HttpVerbs.Post)]/[AcceptVerbs(HttpVerbs.Get)]装饰一个动作

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(string title)
{
    // Do Something...
}
Run Code Online (Sandbox Code Playgroud)

或者使用[HttpPost]/[HttpGet]属性

[HttpPost]
public ActionResult Create(string title)
{
    // Do Something...
}
Run Code Online (Sandbox Code Playgroud)

他们不一样吗?

asp.net-mvc http-get http-post asp.net-mvc-2

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

将图像写入本地服务器

更新

接受的答案对去年有好处,但今天我会使用其他人使用的包:https: //github.com/mikeal/request


原版的

我正试图抓住谷歌的徽标并使用node.js将其保存到我的服务器

这就是我现在所做的并且不起作用:

        var options = {
            host: 'google.com',
            port: 80,
            path: '/images/logos/ps_logo2.png'
        };

        var request = http.get(options);

        request.on('response', function (res) {
            res.on('data', function (chunk) {
                fs.writeFile(dir+'image.png', chunk, function (err) {
                    if (err) throw err;
                    console.log('It\'s saved!');
                });
            });
        });
Run Code Online (Sandbox Code Playgroud)

我怎样才能使这个工作?

http-get node.js

59
推荐指数
4
解决办法
11万
查看次数

将JSON序列化为查询字符串的标准化方法?

我正在努力建立一个宁静的API,我正在努力如何将JSON数据序列化为HTTP query string.

需要在请求中传递许多强制和可选参数,例如(在下面表示为JSON对象):

{
   "-columns" : [
      "name",
      "column"
   ],
   "-where" : {
      "-or" : {
         "customer_id" : 1,
         "services" : "schedule"
      }
   },
   "-limit" : 5,
   "return" : "table"
}
Run Code Online (Sandbox Code Playgroud)

我需要支持不同数量的不同客户端,所以我正在寻找一种标准化的方法将这个json对象转换为查询字符串.有一个,它看起来怎么样?

另一种方法是允许用户只是传递消息体中的json对象,但我读到我应该避免它(带请求体的HTTP GET).

有什么想法吗?

编辑以澄清:

列出一些不同的语言如何编码上面给定的json对象:

  • jQueryusing $.param:-columns [] = name&-columns [] = column&-where [-or] [customer_id] = 1&-where [-or] [services] = schedule&-limit = 5&return = column
  • PHPusing http_build_query:-columns [0] = name&-columns [1] = column&-where [-or] [customer_id] …

serialization json http-get query-string

50
推荐指数
4
解决办法
7万
查看次数

如何在Symfony2或Symfony3中检查请求是否为POST或GET请求

我只是想知道是否有一种非常简单的方法(最好:$this->container->isGet()我可以调用一个简单的方法)来确定请求是a $_POST还是$_GET请求.

根据文件,

Request对象包含有关客户端请求的信息.可以通过几个公共属性访问此信息:

  • request:相当于$_POST;
  • query:相当于$_GET($request->query->get('name'));

但是我将无法使用if($request->request)if($request->query)检查,因为它们都是Request类中的现有属性.

所以我想知道Symfony提供类似的东西

$this->container->isGet();
// or isQuery() or isPost() or isRequest();
Run Code Online (Sandbox Code Playgroud)

上文提到的?

php http-get http-post request symfony

47
推荐指数
3
解决办法
4万
查看次数

MVC中的HttpPost vs HttpGet属性:为什么要使用HttpPost?

所以我们有[HttpPost],它是一个可选属性.据我所知,这会限制调用,因此只能通过HTTP POST请求进行调用.我的问题是为什么我要这样做?

asp.net-mvc attributes http-get http-post

40
推荐指数
3
解决办法
9万
查看次数

VB.NET中的HTTP GET

在VB.net中发布http get的最佳方法是什么?我想得到一个请求的结果,如http://api.hostip.info/?ip=68.180.206.184

vb.net http-get

37
推荐指数
3
解决办法
16万
查看次数

如何在PowerShell中使用HTTP GET?

可能重复:
获取$ webclient.downloadstring以写入Powershell Powershell http 文本中的文本文件,
其中包含.cer for auth

我有一个SMS系统,使我能够从HTTP GET请求发送SMS:

http://smsserver/SNSManager/msgSend.jsp?uid&to=smartsms:*+001XXXXXX&msg="text of the message"&encoding=windows-1255
Run Code Online (Sandbox Code Playgroud)

我想在PowerShell中输入文本的详细信息,然后浏览此URL.我该怎么做?

powershell http http-get

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

如何在URL中传递POST参数?

基本上,我认为我不能,但很高兴被证明是错的.

我在PHP中动态生成HTML菜单,为每个当前用户添加一个项目,以便我得到类似的东西<a href="process_user.php?user=<user>>,但我喜欢POST而不是GET.

有没有办法将信息作为POST参数传递,而不是从可点击的HREF链接传递?


更新:对不起,我不允许使用JS - 我应该说,我的不好


更新到更新:看起来@Rob正在使用"您可以使用按钮而不是锚点,只需将按钮设置为看起来像链接.这样您就可以将隐藏字段中的值放在同一表单中通过POST发送"

php http http-get http-post

36
推荐指数
6
解决办法
21万
查看次数

如何从jQuery ajax调用将复杂对象传递给ASP.NET WebApi GET?

我在JavaScript中有以下复杂对象,其中包含过滤器选项

var filter={caseIdentifiter:'GFT1',userID:'2'};
Run Code Online (Sandbox Code Playgroud)

我想传递给ASP.NET MVC4 WebApi控制器GET

[HttpGet]
public IEnumerable<JHS.Repository.ViewModels.CaseList> Get([FromBody]Repository.InputModels.CaseListFilter filter)
{
  try
  {
    return Case.List(filter);
  }
  catch (Exception exc)
  {
    //Handle exception here...
    return null;
  }
}
Run Code Online (Sandbox Code Playgroud)

使用jQuery ajax调用

var request = $.ajax({
  url: http://mydomain.com/case,
  type: 'GET',
  data: JSON.stringify(filter),
  contentType: 'application/json; charset=utf-8',
  cache: false,
  dataType: 'json'
});
Run Code Online (Sandbox Code Playgroud)

ASP.NET控制器方法中的"filter"对象为"null".如果我将其更改为POST,则正确传递过滤器对象.有没有办法将复杂的对象传递给GET?

我不想将参数分离到URL,因为会有一些参数会使它效率低下,很难有可选参数,这样即使添加了新参数,方法签名也保持不变.

c# ajax json http-get asp.net-web-api

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