- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将 dataUrl 发送到客户端的服务器。
请求发送到一个 PHP 脚本,其中包含 Content-Type: multipart/form-data 和键/值消息正文 image=(dataUri string)
如果已成功接收,则会发回 10 位数字响应。如果不成功,则会发送错误响应。
我正在使用datauri module生成dataurl
如果我尝试使用以下命令通过终端执行此操作:
val=`cat dataUri.txt` #generated via datauri module
curl -X POST -F 'image='$val http://xxx.yyyyyyy.com:8082/server/post.php
我成功了。
当尝试使用node和http.request时,我惨败了:(。通过反复试验和大量谷歌搜索,我偶然发现了--trace-ascii,它为您提供了终端中通信的非常详细的故障。所以我一直在尝试有效地复制标题等,希望我能让它发挥作用。
我的请求代码目前如下所示:
var body = 'image='+dataUri ;
postOptions = {
headers: {
'Content-Type': 'multipart/form-data; boundary=------------------------69b2c2b9c464731d' ,
'Content-Disposition': 'form-data; name="image"' ,
'Content-Length': Buffer.byteLength(body) ,
'Accept': '*/*' ,
'Expect': '100-continue'
} ,
host: 'xxx.yyyyyyy.com' ,
port: '8082' ,
path: '/server/post.php' ,
method: 'POST'
} ;
// Set up the request
post_req = http.request(
postOptions,
function(res) {
//
res.setEncoding('utf8') ;
res.on('data', function (chunk) {
console.log('Response: ' + chunk) ;
}) ;
}) ;
// post the data
post_req.write(body) ;
post_req.end() ;
每次都失败。我注意到的一件事:在终端中,内容长度数字比我在 Node 中使用 Buffer.byteLength 得到的数字大了几百个字节。
抱歉省略了服务器信息。我不确定是否允许我发布它...
任何人都可以给我任何提示,任何我应该阅读的信息的链接,关键字,任何东西。我还有很长的路要走,我确信我应该使用某种类型的抽象,比如 Express,但你必须从某个地方开始。
最佳答案
想通了。答案是here
我没有正确使用Content-Disposition。它并不是一个 header ,而是消息正文的一部分(这解释了更大的 Content-Length
正确代码:
var boundary = '------------------------69b2c2b9c464731d'
var body = `--${boundary}
\nContent-Disposition: form-data; name="image"
\nContent-type: plain/text
\nimage=${img}
\n${boundary}--`;
postOptions = {
headers: {
'Content-Type': 'multipart/form-data; boundary='+boundary ,
'Content-Length': Buffer.byteLength(body)
} ,
host: 'xxx.yyyyyyyyyy.com' ,
port: '8082' ,
path: '/server/post.php' ,
method: 'POST'
} ;
// Set up the request
post_req = http.request(
postOptions,
function(res) {
//
res.setEncoding('utf8') ;
res.on('data', function (chunk) {
console.log('Response: ' + chunk) ;
}) ;
}) ;
// post the data
post_req.write(body) ;
post_req.end() ;
关于node.js - 内容类型为 : multipart/form-data Troubleshooting 的 NodeJS Post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45149563/
根据HTML specs : If the contents of a file are submitted with a form, the file input should be identif
我能够找到很多关于 multipart/form-data 的信息,但关于 multipart/related 的信息却不多。在协议(protocol)/请求格式方面,谁能解释一下这两个http规范在
我尝试从项目详细信息页面添加图像。图像添加成功,但是当我尝试在 itemdetails 页面显示图像时,出现异常 org.springframework.web.multipart.Multipart
在 Spring Boot 中,对于分段上传,我看到许多教程站点都建议具有以下属性之一:spring.http.multipart.enabled=false或者spring.servlet.mult
我正在尝试向服务器发送多部分请求,但出现以下异常 HTTP 状态 500 - 请求处理失败;嵌套异常是 org.springframework.web.multipart.MultipartExcep
情况: 从 Node.js(通过 Node 核心 HTTPS 模块)向 spring-boot Java API 提交多部分表单请求。 API 需要两个表单数据元素: “路线” "file" 完全错误
上传到 webapi Controller 时,我仅在某些文件上收到错误。 错误是“MIME 多部分流。MIME 多部分消息不完整” 似乎该错误与某种未良好终止的 POST 数据相关联,但当我使用 f
我有一个有效的解决方案,但似乎很愚蠢,需要它。 这是我的工作解决方案: @PreAuthorize("isAuthenticated()") @ApiOperation(value = "Takes
这个问题已经有答案了: How can I upload files to a server using JSP/Servlet and Ajax? (4 个回答) 已关闭2 年前。 我尝试用java
我尝试通过包含的 CURL 发布 multipart/form-data, A JSON Object Stream object pdf and jpeg file curl -i -X POS
我在表单帖子中遇到了土耳其语字符问题, 我在尝试以下代码时遇到问题, // some input 但是当我尝试这个时它工作正常 // some input 为什么会这样? 最佳答案 在第一个示
我花了几天时间让 Spring Boot Upload 文件工作,但是,和 Spring 一样,你不知道魔法是如何工作的,即使在使用这个框架多年之后 - 你必须用谷歌搜索大量时间来解开哪里出了问题并解
我正在编写一个脚本,用于将文件上传到需要多部分请求的 cgi 脚本,例如 HTML 页面上的表单。 boundary 是一个唯一的标记,用于注释请求正文中的文件内容。这是一个示例正文: --BOUND
我有一个带有 Netty 的 jersy 2.13 的服务器应用程序,我尝试上传带有“multipart/form-data”的文件,但出现此错误。 错误信息: 7605 10:01:49.309
来自文档:“当您使用 TransferManager 下载文件时,该实用程序会自动确定对象是否为多部分” 来源:https://aws.amazon.com/fr/blogs/developer/pa
我需要有关发送多部分发布请求的帮助。主要问题是服务器无法识别我请求的帖子正文部分。服务器端在 android 上运行良好,但在 Qt 和 NetworkAccessManager 上运行不佳。 代码如
在 fragment B 中,我有一个用于将图像提交到服务器的提交按钮。单击提交按钮时,它将返回到 fragment A。我使用 Multipart 将图像上传到服务器,并且该进程在 Thread 上
我目前正在使用 Spring Boot v1.3.0.BUILD-SNAPSHOT 和 Spring v4.2.2.BUILD-SNAPSHOT。 如果我尝试执行多文件上传(通过 angular):
当我使用 JavaMailSender 发送带有附件的电子邮件时,它总是失败并抛出以下异常: org.springframework.mail.MailSendException: Failed me
我正在尝试在 NodeJS 上手动解析 multipart/formdata 请求。 请求中的所有内容均已正确解析(文件除外)。我正在读取文件数据,但它的长度比原始的短(在fiddler中,选择hex
我是一名优秀的程序员,十分优秀!