标签: http-put

Java HttpsURLConnection SSLHandshakeException

我试图使用HttpsURLConnection,然后执行PUT请求与网站建立HTTPS连接.当我尝试创建OutputStreamWriterfrom时HttpsURLConnection.getOutputStream(),抛出以下异常:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)

该页面刚刚获得了证书(由StartCom发布) - 我是否需要手动执行某些操作以使Java识别证书现在存在?我可以毫无困难地连接到同一网站的其他页面,但他们有不同的证书.

java https http-put sslhandshakeexception

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

HTTP PUT 在 django Rest 框架中无法正常工作

我在 django Rest 框架中使用以下代码来实现放置和修补功能。PATCH (partial_update) 工作正常,但是,为 PUT 提供较少的字段不会像 PUT 请求那样替换整个资源。例如,如果数据如下所示:

{
"id": 6,
"name": "crticial MVP",
"description": "getting things done",
"end": "2012-02-18"   
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用以下数据进行 PUT(在http://localhost:800/api/sprints/6/上):

{
    "name": "critical MVP2", 
    "end": "2012-02-18"
}
Run Code Online (Sandbox Code Playgroud)

此调用应将描述设置为无。但描述保留了它的价值,就好像我正在做一个补丁一样。如何在更新功能中强制执行资源替换?

PS:我在初始化序列化器进行更新时设置了partial=False。

视图.py:

class SprintViewSet(viewsets.ModelViewSet):
    queryset = Sprint.objects.order_by('end')
    serializer_class = SprintSerializer 
    def update(self, request, *args, **kwargs):
        sprint=self.get_object()                        
        serializer = SprintSerializer(sprint, data=request.data, partial=False,
 context={'request': request, 'view':self, 'format':None})
        serializer.is_valid(raise_exception=True)       
        serializer.save()
        return Response(serializer.data)
    def partial_update(self, request, *args, **kwargs):
        instance = self.get_object()
        serializer = SprintSerializer(instance, data=request.data, partial=True,
 context={'request': request, 'view':self, …
Run Code Online (Sandbox Code Playgroud)

django http-put django-serializer django-rest-framework http-patch

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

CQRS 中的 HTTP REST 响应

我正在构建 HTTP REST API 并为 API 实现 CQRS、DDD、ES 和微服务概念。

例如,我想为订购系统构建 API。订单包含订单状态、客户数据、员工数据、购物车项目、运输数据。订单命令服务和订单查询服务使用不同的代码,不同的数据库。和不同的IP/端口。

客户数据包括客户 ID、名字、姓氏、联系电话等。销售和员工等员工数据包括员工 ID、电子邮件、姓名和角色。送货数据包括送货地址、城市、邮政编码、送货单、送货方式和送货费用。购物车项目包含产品 ID 和数量。客户数据、产品数据、员工数据和运输方式数据来自其他服务。

当我想开发它时,我有两个问题。

  1. 当我构建 POST 方法以从销售/员工创建新订单时,请求有效负载中应该包含什么?是否可以只发送客户 ID 和员工 ID 作为请求负载?还是应该将客户姓名和联系电话作为有效负载发送?
  2. 当我构建 POST / PUT 方法时,我应该返回响应代码 200 吗?响应中应该包含哪些内容?例如,我只在员工创建新订单时将客户 ID 和员工 ID 发送到订单命令服务。响应正文是否应该显示包含其他服务结果的完整订单数据(例如来自客户 ID 的姓名和联系电话等)?不仅如此,非规范化系统相当慢。需要非规范化器来获取客户和员工的详细信息。这取决于网络延迟和其他服务响应。但是,用户希望立即获得订单数据。

我应该怎么做才能以正确的方式开发 HTTP REST API?

谢谢你。

http-put cqrs

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

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
查看次数

使用Slim Framework无法通过PUT请求获取正文

我试图使用Slim框架从PUT请求中检索参数.从POST主体解析参数时,我可以简单地$request->post('param')用来检索param中的值.但是,当我使用时$request->put('param'),我总是收到null.

我的PUT身体是这样形成的:param=value&otherparam=othervalue&foo=bar......

PS:我已经看过这个问题,但答案没有使用put()-Method.

rest http-put slim

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

使用哪种 HTTP 方法:PUT 或 DELETE?

我想使用适合以下场景的适当方法来设计我的休息端点。

有一个团体。每个小组都有成员。会员必须经过群管理员批准才能成为会员。如果管理员拒绝,用户将无法成为该组的成员。

我有以下端点来解决这种情况。

  1. 当用户加入群组时 POST /projects/api/v1/projects/{project id}/members/{member id}

  2. 用于 PUT /groups/api/v1/groups/{group id}/members/{member id}/approve批准会员资格

但是,我无法确定拒绝会员资格的正确端点。我应该使用

PUT   /projects/api/v1/projects/{project id}/members/{member id}/reject
Run Code Online (Sandbox Code Playgroud)

或者

DELETE  /projects/api/v1/projects/{project id}/members/{member id}
Run Code Online (Sandbox Code Playgroud)

rest http http-put http-method http-delete

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

Http Put请求

我正在使用HttpPut与Android中的服务器通信,我得到的响应代码是500.在与服务器人交谈后,他说准备下面的字符串并发送.

{ "键": "值", "关键": "值"}

现在我完全感到困惑,我应该在我的请求中添加此字符串.

请帮帮我.

android http http-put

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

传递复杂对象到 REST 服务的删除方法

我有管理资源的 REST 服务EASYPAY..此时此服务公开了 3 种不同的方法:

  1. 获取 EasyPay 请求 ( GET);
  2. 插入一个 Easypay 请求 ( POST);
  3. 更新 Easypay 请求 ( PUT)。

当我插入或更新请求时,我还必须trace在数据库的表中插入一行。

现在我必须删除一个 Easypay 请求,我还必须在跟踪表上添加一行。我想使用DELETEHTTP 动词,但我看到使用 delete 我不能传递复杂的对象,而只能传递要删除的请求的 ID。我不能使用PUTHTTP 动词,因为我已经使用过它,无论如何它在概念上都不正确......我不想做更多的从客户端到服务器的调用(一个用于删除请求,另一个用于删除请求)在跟踪表中添加一行)..所以我不知道如何解决问题。

编辑

我试着解释得更好......我有一个部署在两个不同服务器上的网站。一种用于前端,一种用于后端。后端只为前端公开一些 REST 服务,它无法访问互联网(只能访问内部网)。访问该网站的客户可以通过名为 XPAY 的系统进行付款,它的工作方式与 paypal 非常相似(XPAY 只是另一个虚拟 POS)。因此,当客户尝试付款时,我会在数据库中保存一些信息 + 跟踪付款尝试,然后将他重定向到 XPAY。在那里,他可以付款。最后,XPAY 返回网站(前端)向我们传达付款结果。结果在支付的 URL 中,所以我必须把 URL 中的所有信息都发送到后端。根据结果​​,

你有什么建议?

谢谢

rest http-put complextype http-delete

0
推荐指数
1
解决办法
3112
查看次数

使用XMLHttpRequest发送PUT/DELETE数据

我使用来自使用XMLHttpRequest发送POST数据的示例来创建此JavaScript代码:

function PostXML(webURL, post_data) {
    var objHTTP = new ActiveXObject("MSXML2.XMLHTTP");
    objHTTP.open("POST", webURL, false);
    objHTTP.setRequestHeader("Content-Type", "application/xml; charset=utf-8");
    objHTTP.setRequestHeader("Accept", "application/xml; charset=utf-8");
    objHTTP.setRequestHeader("Content-Length", post_data.length);
    objHTTP.send(post_data);

    while((objHTTP.readyState != 4) && (objHTTP.readyState != 'complete')) {
        Delay(100);
    }

    if(200 != objHTTP.Status) {
        Log.Message("Returned Status Code of: " + objHTTP.Status);
        Log.Message("Status Text: " + objHTTP.StatusText);
    }
    else {
        Log.Message("Returned Status Code of: " + objHTTP.Status);
    }

    return objHTTP.responseText;
}
Run Code Online (Sandbox Code Playgroud)

我也需要PUTDELETE东西.如何传输此代码才能使用PUT,以及如何传输此代码以便能够执行此操作DELETE

任何其他同样有效的例子也很好.

javascript xml httprequest http-put http-delete

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