gpt4 book ai didi

wolfram-mathematica - 通过 Mathematica 上传到 ifile.it

转载 作者:行者123 更新时间:2023-12-03 23:37:47 25 4
gpt4 key购买 nike

我想知道是否可以将文件从 Mathematica 上传到 ifile.it。我见过API ifile.it,但是,我仍然不知道它是如何工作的。此外,我在 Mathematica 中看到的最接近的例子是' Twittering with Mathematica ',但我不清楚,如何使用该示例中的 GET 请求。

提前致谢

最佳答案

设置 Java HttpClient 库。

<< JLink`

client = JavaNew["org.apache.commons.httpclient.HttpClient"]
(*
Out[3]= JLink`Objects`vm1`JavaObject17955866594508801
*)

确定要使用的服务器。
method = JavaNew["org.apache.commons.httpclient.methods.GetMethod", 
"http://ifile.it/upload:api_fetch_upload_server"]

(*
Out[4]= JLink`Objects`vm1`JavaObject3301364646019073
*)

client@executeMethod[method]

(*
Out[5]= 200
*)

id = "server_id" /. ImportString[method@getResponseBodyAsString[], "JSON"]

(*
Out[6]= "55"
*)

使用带有 FilePart 的 MultipartRequestEntity 通过 POST 请求将文件上传到服务器。
method = JavaNew["org.apache.commons.httpclient.methods.PostMethod", 
"http://s" <> ToString[id] <> ".ifile.it/upload?apikey=" <> apikey]

(*
Out[7]= JLink`Objects`vm1`JavaObject25911718337052673
*)

filename = NotebookFileName[];

file = JavaNew["java.io.File", filename]

(*
Out[9]= JLink`Objects`vm1`JavaObject27844190972936193
*)

part = JavaNew["org.apache.commons.httpclient.methods.multipart.FilePart",
file@getName[], file]

(*
Out[10]= JLink`Objects`vm1`JavaObject17546309972000769
*)

part@setContentType["application/vnd.wolfram.mathematica"]

part@setName["Filedata"]

entity = JavaNew[
"org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity",
{part}, method@getParams[]]

(*
Out[13]= JLink`Objects`vm1`JavaObject22100383232950273
*)

method@setRequestEntity[entity]

client@executeMethod[method]

(*
Out[15]= 200
*)

ImportString[method@getResponseBodyAsString[], "JSON"]

(*
Out[16]= {"file_key" -> "b8em0dc",
"file_md5" -> "acc9b7b3910b1e40188cf26ae3f20b80",
"file_mime" -> "text/plain", "file_name" -> "ifile.it.nb",
"file_size" -> "10473", "hash" -> "ca3d886713f64af6e9ffe6c3843d2eec",
"status" -> "ok", "url" -> "http://ifile.it/b8em0dc/ifile.it.nb"}
*)

关于wolfram-mathematica - 通过 Mathematica 上传到 ifile.it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5853134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com