相关疑难解决方法(0)

REST中的PUT与POST

根据HTTP/1.1规范:

POST方法用来请求原始服务器接受被附在请求由标识的资源的新下属实体Request-URIRequest-Line

换句话说,POST用于创建.

PUT方法请求将所包含的实体存储在提供的实体下Request-URI.如果Request-URI引用已经存在的资源,则封闭的实体应该被视为驻留在源服务器上的实体的修改版本.如果Request-URI未指向现有资源,并且该URI能够被请求用户代理定义为新资源,则源服务器可以使用该URI创建资源.

也就是说,PUT用于创建或更新.

那么,应该使用哪一个来创建资源?或者需要支持两者?

rest post http put

5227
推荐指数
34
解决办法
227万
查看次数

Rails Put vs Post

我一直在阅读put和post请求之间的区别,我有一些与rails相关的问题:我想更改已经创建的行中的一个特定字段...我应该使用put还是post请求?例如以下不同?

#Assume this is a put request
def update
    @model=Model.find(x)
    @model.field="new_field"
    @model.save
end

#Assume this is a post request
def update
    @model=Model.find(x)
    @model.field="new_field"
    @model.save
end

#What if I use the rails update method?
def update
    @model=Model.find(x)
    @model.update(model_params)
    @model.save
end
Run Code Online (Sandbox Code Playgroud)

提前致谢.

post ruby-on-rails http put

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

Dropbox直接从浏览器上传文件

我试图将文件直接上传到dropbox [来自浏览器/网络应用程序],代码API上的"uploadFile"函数需要在服务器上上传文件,这给我带来了麻烦,因为我不想要任何要上传到我的服务器并从那里到dropbox的文件.

$f = fopen("test.jpg", "rb"); // requires file on server
$result = $dbxClient->uploadFile("test.jpg", dbx\WriteMode::add(), $f);
fclose($f);
Run Code Online (Sandbox Code Playgroud)

试过这个https://github.com/dropbox/dropbox-js失望地说没有明确的文档,文档部分的许多链接都被破坏了.

我需要将文件上传到我的帐户,客户端无需登录到Dropbox.

任何指针都会非常感激.寻找Ajax/JavaScript方法.

更新

我尝试了以下内容,但没有来自Dropbox的回复

HTML

<input type="file" name="file" id="file" onchange="doUpload(event)">
Run Code Online (Sandbox Code Playgroud)

JavaScript的

var doUpload = function(event){

var input = event.target;
var reader = new FileReader();


  reader.onload = function(){
    var arrayBuffer = reader.result;

   $.ajax({  
    url: "https://api-content.dropbox.com/1/files_put/auto/uploads/" + input.files[0].name,  
    headers: {  
        Authorization: 'Bearer ' + MyAccessToken,  
        contentLength: file.size  
    },  
    crossDomain: true,  
    crossOrigin: true,  
    type: 'PUT',  
    contentType: input.files[0].type,  
    data: arrayBuffer,  
    dataType: 'json',  
    processData: false, …
Run Code Online (Sandbox Code Playgroud)

javascript jquery dropbox dropbox-api dropbox-sdk-js

5
推荐指数
2
解决办法
8763
查看次数

Python 请求 - 上传 Zip 文件

我有一个 zip 文件需要上传。当我使用 CURL 命令时,它正在上传它,但是当我使用 Python 请求尝试相同的操作时,我得到了HTTP 405 Method Not Allowed. zip 文件通常约为 500kb。

卷曲命令 -

curl -u<username>:<password> -T /log/system/check/index.zip "<target URL>"

Python脚本(尝试了2种不同的方法)-

1:

import requests
files = {'file': open('/log/system/check/index.zip', 'rb')}
r = requests.post(url, files=files, auth=('<username>', '<password>'))
Run Code Online (Sandbox Code Playgroud)

2:

import requests
fileobj = open('/log/system/check/index.zip', 'rb')
r = requests.post(url, auth=('<username>', '<password>'), files={"archive": ("index.zip", fileobj)})
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗?

python curl python-requests

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

Laravel 中何时使用 POST 和 PUT 方法?

我不知道POST和PUT方法之间的确切区别。有些人在网上说当你更新记录时你必须使用PUT方法而不是POST,我不知道这是真的吗?

如果您的网站 URL 采用 POST 方法,则形成 Internet 1. www.example.com/user/{id}/update :- PUT 使用 2. www.example.com/user/update :- POST 使用 这是否正确?

post put laravel

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

REST API 中将项目添加到集合的正确方法是什么 - POST 或 PUT

应用程序中有一些users有偏好的内容 - 最喜欢的作者。用户可以更改此列表。作者位于实体authors的集合中User

@Entity
public class User {
    @Id

     ....
    @ElementCollection
    private List<String> authors=new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)

用户可以编辑他的个人资料并通过添加或删除作者来更改此列表。一方面,添加或删除作者意味着只需编辑个人资料,这就是我目前使用以下PUT方法的原因:

@PutMapping("/api/profile/author/add")
@PutMapping("/api/profile/author/remove")
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否正确。另一种变体是在用户添加和删除项目时使用POST和方法:DELETE

@PostMapping("/api/profile/author/add")
@DeleteMapping("/api/profile/author/remove")
Run Code Online (Sandbox Code Playgroud)

那么什么是正确的变体,原因是什么?

rest spring-mvc spring-data-jpa

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

为什么REST API方法名称很重要?因为我可以使用任何这些方法来执行CRUD操作

在REST中,完整的API有一些方法名称,如(GET,PUT,POST等),用于某些特定操作(CRUD)但我可以使用任何方法执行任何操作

数据库操作示例:

  1. 我可以使用GET方法创建或插入新文档或删除或更新.

  2. 我可以使用POST方法发布或更新或删除.

  3. 我可以使用PUT方法删除或更新或删除.

    我可以使用任何一种方法执行DB(CRUD)操作

那么,为什么需要这个方法来指定何时调用任何其他完整的API?

rest

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