标签: http-method

安全性:通过URL强制执行GET请求?

如果我要创建一个以下列方式处理登录的应用程序,我应该关注什么:

http://api.myApp.example/printSomething/username/password/
Run Code Online (Sandbox Code Playgroud)

与基于POSTed用户详细信息(用户名+密码)的普通登录页面相比,它有多不安全?有区别吗?

谢谢

security authentication url http-method

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

Rails 3如何决定点击"link_to"生成的链接时将使用哪个HTTP动词?

我有两个链接:

<%= link_to("Edit", edit_product_path(product.id)) %>
<%= link_to("Delete", product, :method => :delete) %>
Run Code Online (Sandbox Code Playgroud)

生成的链接是:

<a href="/products/81/edit">Edit</a>
<a href="/products/81" data-method="delete" rel="nofollow">Delete</a>
Run Code Online (Sandbox Code Playgroud)

单击同时打开Edit和打开时Delete,将GET使用该方法.

Rails如何决定使用哪种方法?

链接中的含义data-method="delete"rel="nofollow"含义是什么Delete

ruby-on-rails http-verbs http-method link-to ruby-on-rails-3

4
推荐指数
1
解决办法
1757
查看次数

Symfony2 <a>与'post'或'delete'或'put'方法链接

我想通过链接生成一个带有"PUT"或"POST"方法要求的网址<a href>.

由于我使用框架服务器端,我使用假表单来执行此操作 - 使用PUT方法的示例:

<form action="someActionUri" method="post">
      <input type="hidden" name="_method" value="PUT" />
      <input type="submit" value="GO PUT" />
</form>
Run Code Online (Sandbox Code Playgroud)

但是,我想使用一个简单的<a>链接:(

post put hyperlink http-method symfony

3
推荐指数
1
解决办法
4297
查看次数

如何在routing.yml Symfony2中声明这两个方法?

我想在routing.yml中为同一路由声明两个方法GETPOST.

根据文档,可以使用这样的注释:

/**
 * @Route("/edit/{id}")
 * @Method({"GET", "POST"})
 */
Run Code Online (Sandbox Code Playgroud)

但是如何YAML?我尝试了不同的东西:

contact_envoi:
    pattern:  /contact-envoi
    defaults: { _controller: AcmeDemoBundle:Default:contactEnvoi }
    requirements:
        sf_method: ['get','post']
Run Code Online (Sandbox Code Playgroud)

...
    requirements:
        _method: { 'GET', 'POST' }
Run Code Online (Sandbox Code Playgroud)

但它仍然无效...请帮助,我在文档中没有发现任何相关信息.

routing yaml http-method symfony

3
推荐指数
2
解决办法
7486
查看次数

PUT方法(RESTful)不能用作更新资源的方法

根据这篇文章(http://restcookbook.com/HTTP%20Methods/put-vs-post/),PUT应该作为更新资源的方法.

但是,使用JAX_RS 2.0和Jersey 2.0练习RESTful,我认为它不会更新特定资源.(即我正在使用JAX_RS 2.0和Jersey 2.0学习RESTful)

这是一个这样的资源.

<customer>
    <name>Before</name>
    <postcode>111</postcode>
</customer>
Run Code Online (Sandbox Code Playgroud)

我想要做的是更新(也许我应该说"替换")这个资源.

    ClientConfig config = new ClientConfig();
    Client client = ClientBuilder.newClient(config);
    WebTarget target =  client.target("http://xxx/yyy/zzz/end.cust");

    Customer cust = new Customer();
    cust.setName("After");
    cust.setPostcode(222);

    target.path("Before").request().put(Entity.xml(cust));
Run Code Online (Sandbox Code Playgroud)

@Id注释在"Customer"类中设置为"Name",因此路径"Before"应该作为ID工作,第一个资源(名为"Before")应该替换为第二个资源(名为"After") ").

但是,在执行上面的编码之后,"之前"资源仍然存在,并且有一个新的"After"resrouce.似乎PUT方法可以创建一个新资源,而不是更新某些东西.(即有"之前"和"之后"资源,并且没有更新任何内容)

我测试了一个POST方法以创建一个新资源,并按照我的预期创建了一个新资源.

如果你看到我做错了什么或需要做什么,你能提出一些建议吗?

编辑

我将添加服务器端代码.用@PUT注释的方法是这样的.

 @PUT
 @Path("{id}")
 @Consumes({"application/xml", "application/json"})
 public void edit(@PathParam("id") String id, Customer entity) {
     super.edit(entity);
 }
Run Code Online (Sandbox Code Playgroud)

这是在一个名为CustomerFacadeREST.java的类中,在我创建"来自数据库的RESTful服务"后自动创建.

根据NetBeans的文档,super.edit()方法最初是这样的.

 public void edit(T entity) {
 getEntityManager().merge(entity);
 }
Run Code Online (Sandbox Code Playgroud)

在"Customer"类中,@ Id以这种方式设置为"name"值.

 public class Customer implements Serializable {
     private static final long serialVersionUID = 1L; …
Run Code Online (Sandbox Code Playgroud)

java rest jax-rs put http-method

3
推荐指数
1
解决办法
7357
查看次数

REST API真的是RESTful吗?

我是这个游戏的新手,所以我可能会误解事物.实际上,如果有人告诉我,我误解了事情,那将是一种恩惠.也许这个人会体贴到足以向我展示正确的道路.但...

REST适用于Web服务(http://en.wikipedia.org/wiki/Representational_state_transfer#Applied_to_web_services)的" 指南 "或" 最佳实践 "之一是,您应该在拨打电话时使用正确的HTTP方法(我误解了它?)REST API的.

但是看看Web上的许多API实现,我看到100%的调用实际上是GET调用,根据它们的URI,它将被API解释为HTTP动词或方法之一.

因此,例如,查看Twitter(https://dev.twitter.com/rest/public)的REST API文档,其原则上只定义了两个动词/方法(GET和POST),实际上已发送所有调用作为GET,并且基于GET调用中的URI,由API解释并采取行动.

例:

GET状态/查找:https://api.twitter.com/1.1/statuses/lookup.json

POST状态/更新(PUT?):https://api.twitter.com/1.1/statuses/update.json

在这两种情况下,调用本身都是使用GET进行的,URI的最后一部分将其定义为真正的GET或POST.

总之,要成为真正的REST,不应该为Web服务的REST API的客户端实现使用正确的HTTP谓词/方法吗?

我错过了什么?

api rest http-verbs http-method

3
推荐指数
1
解决办法
1769
查看次数

创建自定义 Http 方法

是否可以通过覆盖该类HttpMethodAttribute并指定我们自己的方法来创建我们自己的 HTTP 方法supportedMethods

事实上,根据情况,我们需要将View作为完整视图与_Layout一起返回,有时我们只需要返回该视图的PartialView。所以我的想法是放置一个自定义属性,例如,[HttpPartial]客户端会根据请求中使用的方法来判断它是否需要完整视图(GET 方法)或部分视图(PARTIAL 方法)。

http-method asp.net-core

3
推荐指数
1
解决办法
2282
查看次数

Angular Http PUT 不向 Web-API 发送请求

我有使用实体框架的 c# WEB API - 我试图通过我的角度前端发出放置请求以模拟“签入”功能,但请求未通过。

这是我的 Web api 方法

   [HttpPut("checkin/{id}")]
    [AuthorizeRoles(Role.Administrator, Role.User)]
    public async Task<IActionResult> CheckIn(int id)
    {
        var reservation = await context.Reservations.FindAsync(id);
        var username = User.Identity.Name;

        if (reservation == null)
            return NotFound();

        // Ensure user is checking-in their own reservation and its not already checked-in
        if (reservation.UserName == username && reservation.CheckInDate == null)
        {
            reservation.CheckInDate = DateTime.Now;

            var count = await context.SaveChangesAsync();

            if (count < 1)
                return StatusCode((int)HttpStatusCode.InternalServerError);
        }

        return Ok();
    }
Run Code Online (Sandbox Code Playgroud)

这是我的两个 .ts 文件,其中正在发起请求 - 注意:在第二种方法中,我决定手动传递 ID …

api entity-framework put http-method angular

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

Rest Api:何时使用 Post、PUT、PATCH 和 Delete

我正在开发一个宁静的 api,我需要更新一个资源(即一个包含 10 个字段的客户详细信息记录)。

在添加请求时,我发送一个带有完整记录的 Post 请求。在更新请求时,我发送一个包含 10 个字段的完整记录的 PUT 请求。在验证请求中,我发送一个只有两个字段的 PUT 请求,即 recordId 和 versionNo。在删除请求时,我在 HttpOptions 中发送一个带有两个字段的 DELETE 请求。

我有几个问题:

  • 虽然,它是一个宁静的 api,但它是一个特定的应用程序,它将被一个有角度的应用程序使用,所以我应该返回数据以响应 POST/PUT 请求。

  • 我应该在验证的情况下使用 PATCH(或任何其他仅将 recordId 和 versionNo 发送到服务器以更改某些字段的操作)还是可以使用 PUT。

  • 为了统一起见,我是否应该在删除请求的正文中发送数据,因为我需要 recordId 和 versionNo 来删除记录。

rest http-post http-put http-method http-delete

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

disable http method in express js

im doing nessus testing on my express app and here what i get

基于每种方法的测试:

  • HTTP methods ACL CHECKOUT COPY DELETE GET HEAD LOCK MERGE MKACTIVITY MKCOL MOVE NOTIFY OPTIONS PATCH POST PROPFIND PROPPATCH PUT REPORT SEARCH SUBSCRIBE TRACE UNLOCK UNSUBSCRIBE are allowed on :

    //登录/样式

我做了一些搜索,实际上最终来到了这里。 disable HTTP methods, TRACK TRACE etc

解决方案

const allowedMethods = ['GET','HEAD','POST'];

function onrequest(req, res) {
  if (!allowedMethods.includes(req.method))
    return res.end(405, 'Method Not Allowed');
  // ...
}
Run Code Online (Sandbox Code Playgroud)

however i do not understand how to use the …

http http-method node.js

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