1.我在java中发布了一个服务提供给调用,postman中可以请求解析出数据
.png)
请求信息如下:
POST /uploadPersonExcel HTTP/1.1
Host: localhost:8017
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
cache-control: no-cache
Postman-Token: 1c23edfe-1e83-44c6-8f91-e06bccfd4af3
Content-Disposition: form-data; name="file"; filename="C:\Users\elite\Desktop\personinfo.xlsx
------WebKitFormBoundary7MA4YWxkTrZu0gW--
2.Ensemble中请求代码如下:
ClassMethod PostFile()
{
Set excelpath = "C:\Users\elite\Desktop\personinfo.xlsx"
s filename="personinfo.xlsx"
s fullPathName=excelpath
Set HttpRequest = ##class(%Net.HttpRequest).%New()
set HttpRequest.Server="127.0.0.1"
set HttpRequest.Port="8017"
s stream=##class(%Stream.FileBinary).%New()
s sc=stream.LinkToFile(excelpath)
s RootMIMEPart = ##class(%Net.MIMEPart).%New()
s BinaryMIMEPart = ##class(%Net.MIMEPart).%New()
s BinaryMIMEPart.Body = stream
d BinaryMIMEPart.SetHeader("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
d BinaryMIMEPart.SetHeader("Content-Disposition","form-data; name="_$CHAR(34)_"file"_$CHAR(34)_"; filename="_$CHAR(34)_filename_$CHAR(34)_"")
S status = RootMIMEPart.Parts.Insert(BinaryMIMEPart)
s writer = ##class(%Net.MIMEWriter).%New()
d writer.OutputToStream(HttpRequest.EntityBody)
d writer.WriteMIMEBody(RootMIMEPart)
d HttpRequest.SetHeader("Content-Type", "multipart/form-data; boundary="_RootMIMEPart.Boundary)
d HttpRequest.SetHeader("Content-Disposition","form-data; name="_$CHAR(34)_"file"_$CHAR(34)_"; filename="_$CHAR(34)_excelpath_$CHAR(34)_"")
d HttpRequest.InsertFormData("file", BinaryMIMEPart)
s tSCx = HttpRequest.Post("/uploadPersonExcel",1, 1)
w:tSCx'=1 $System.Status.GetErrorText(tSCx)
If '$IsObject( HttpRequest.HttpResponse) {
s err = "Response Error"
}
Set Myresponse = HttpRequest.HttpResponse
If $IsObject(Myresponse) {
set data1 = ""
set stream1 = Myresponse.Data
While 'stream1.AtEnd {
set data1 = data1 _ stream1.ReadLine(,.sc,.eol)
If $$$ISERR(sc) {
set data1 = data1 _ "ERROR" Quit
}
}
w "返回结果:"_data1,!
}
}
测试模式下的消息如下:
.png)
不知道问题出在哪里?