Я пытаюсь отправить dataUrl на клиентский сервер.
Запрос отправляется в php-скрипт с Content-Type: multipart / form-data и телом сообщения типа ключ / значение image = (dataUri string).
Если он был успешно получен, ответ отправляется 10-значным числом. В случае неудачи отправляется ответ об ошибке.
Я использую модуль datauri для создания 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() ;
Это терпит неудачу каждый раз. Я заметил кое-что: в терминале Content-Length Number больше, чем то, которое я получаю с помощью Buffer.byteLength в Node, на пару сотен байт.
Извините за отсутствие информации о сервере. Я не уверен, что мне разрешено опубликовать это ...
Может ли кто-нибудь дать мне какие-либо советы, какие-либо ссылки на информацию, которую я должен прочитать, ключевые слова, что угодно на самом деле. У меня есть долгий путь к этому, я уверен, что должен использовать какой-то тип абстракции, например Express, но с чего-то нужно начинать.