以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  网盘api的post调用失败,请帮忙测试  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87440)

--  作者:luodang2050
--  发布时间:2016/7/11 20:49:00
--  网盘api的post调用失败,请帮忙测试

已上传实例,请在命令窗口直接调用函数“Functions.Execute("复制文件测试")”测试,谢谢!

API说明文档详见:http://manual.seafile.com/develop/web_api_v2.1.html

 

预期实现效果,将资料库“中国”中的文件“/test/foo.c”复制到"/foo.c",个人测试报远程服务器400错误

 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:seafile文件管理测试.table

Copy File

POST https://cloud.seafile.com/api2/repos/{repo-id}/file/?p=/foo.c

Request parameters

  • repo-id
  • p
  • operation
  • dst_repo
  • dst_dir

Sample request

curl -v -d "dst_repo=73ddb2b8-dda8-471b-b7a7-ca742b07483c&dst_dir=/&file_names=foo.c" -H \'Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd\' https://cloud.seafile.com/api2/repos/c7436518-5f46-4296-97db-2fcba4c8c8db/file/?p=/foo.c

Sample response

...
< HTTP/1.1 200 OK
...
"success"


--  作者:大红袍
--  发布时间:2016/7/12 0:23:00
--  

400错误,是服务器无法理解你的请求。你合成的post情况肯定有问题。

 

再有就是,你给的网址,都打不开。别人不知道怎么调用


--  作者:luodang2050
--  发布时间:2016/7/12 9:29:00
--  

检查了实在不知post哪里出现问题,测试账号项目里面已经填好了,即

网址:101.200.184.108

账号:admin@seafile.com     

密码:admin

 

 


--  作者:大红袍
--  发布时间:2016/7/12 10:16:00
--  

 比如创建文件,就这样调用,其余的一样。

 

Dim msg As String = "operation=create"
Dim req = System.Net.WebRequest.Create("http://101.200.184.108/api2/repos/a716c6e0-23bf-450a-a7e7-b976c18f2ae9/file/?p=/foo.c")
req.Method = "POST"
req.ContentType = "application/x-www-form-urlencoded"    
req.Headers.Add("Authorization", "Token fd5c3f6fa71a2d00254863528206cadd2c4c4e5f")
req.Accept = "application/json; charset=utf-8; indent=4"

Dim aryBuf As Byte() = Encoding.GetEncoding("UTF-8").GetBytes(msg)
req.ContentLength = aryBuf.Length
Dim writer = req.GetRequestStream()
writer.Write(aryBuf, 0, aryBuf.Length)
writer.Close()
writer.Dispose()
Dim pos = req.GetResponse
Dim stm As System.IO.Stream = pos.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm)
Dim str As String = reader.ReadToEnd
pos.Close
stm.Close
reader.close
msgbox(str)

 

[此贴子已经被作者于2016/7/12 10:16:39编辑过]

--  作者:luodang2050
--  发布时间:2016/7/12 12:35:00
--  

创建文件的调用post之前是已经调通了的,也跟老师建议的一样写法,就是复制文件的api测试不通,格式检查了没法问题,请看下复制文件的api


--  作者:大红袍
--  发布时间:2016/7/12 12:44:00
--  

帮助文档有问题,要加上参数

 

Dim msg As String = "operation=copy&dst_repo=a716c6e0-23bf-450a-a7e7-b976c18f2ae9&dst_dir=/&file_names=foo.c"
Dim req = System.Net.WebRequest.Create("http://101.200.184.108/api2/repos/a716c6e0-23bf-450a-a7e7-b976c18f2ae9/file/?p=/foo.c")
req.Method = "POST"
req.ContentType = "application/x-www-form-urlencoded"    
req.Headers.Add("Authorization", "Token fd5c3f6fa71a2d00254863528206cadd2c4c4e5f")
req.Accept = "application/json; charset=utf-8; indent=4"
Dim aryBuf As Byte() = Encoding.GetEncoding("UTF-8").GetBytes(msg)
req.ContentLength = aryBuf.Length
Dim writer = req.GetRequestStream()
writer.Write(aryBuf, 0, aryBuf.Length)
writer.Close()
writer.Dispose()
Dim pos = req.GetResponse
Dim stm As System.IO.Stream = pos.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm)
Dim str As String = reader.ReadToEnd
pos.Close
stm.Close
reader.close
msgbox(str)

 

 

[此贴子已经被作者于2016/7/12 12:44:18编辑过]

--  作者:luodang2050
--  发布时间:2016/7/12 12:53:00
--  
已经调试成功了,老师果然经验丰富,文档有问题都看出来了,要不调个几天都调不出来,感谢
--  作者:luodang2050
--  发布时间:2016/7/21 13:32:00
--  

还是上面的api,请教像这种带-H参数的应该怎么提交post?

Upload File

After getting the upload link, POST to this link for uploading files.

POST http://cloud.seafile.com:8082/upload-api/73c5d117-3bcf-48a0-aa2a-3f48d5274ae3

Errors

400 Bad request
440 Invalid filename
500 Internal server error

Sample request

curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -F file=@test.txt -F filename=test.txt -F parent_dir=/ http://cloud.seafile.com:8082/upload-api/73c5d117-3bcf-48a0-aa2a-3f48d5274ae3

Sample response

"adc83b19e793491b1c6ea0fd8b46cd9f32e592fc"
[此贴子已经被作者于2016/7/21 13:34:39编辑过]

--  作者:大红袍
--  发布时间:2016/7/21 14:26:00
--  

 不是这样吗?

 

req.Headers.Add("Authorization", "Token fd5c3f6fa71a2d00254863528206cadd2c4c4e5f")


--  作者:luodang2050
--  发布时间:2016/7/21 14:32:00
--  

是以下这几个参数怎么传递?

-F file=@test.txt -F filename=test.txt -F parent_dir=/