| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 306 人关注过本帖
标题:用MSXML2.XMLHTTP上传文件,出现的问题,搞了两天了,晕啊
只看楼主 加入收藏
大树临风
Rank: 2
等 级:论坛游民
帖 子:132
专家分:14
注 册:2015-12-9
结帖率:75.68%
收藏
已结贴  问题点数:20 回复次数:3 
用MSXML2.XMLHTTP上传文件,出现的问题,搞了两天了,晕啊
我用MSXML2.HTTPXML上传文件给Kimi,kimi要求必须:"Content-Type","multipart/form-data",拼接这个body好麻烦,很久都没有成功,请大侠指点:
lcDescription="lcDescription"
lcFilePath = GETFILE()
lcFileContent =FILETOSTR(lcFilePath)
lcApiUrl="https://api.
lcApiKey="我的APIKEY"
*// 创建XMLHTTP对象实例
loXmlHttp = CREATEOBJECT("MSXML2.XMLHTTP")
*// 设置请求方法和URL
loXmlHttp.open('POST', m.lcApiUrl, .F.)

*// 构造boundary用于multipart/form-data
lcBoundary ="--"+ALLTRIM(SYS(2))+ALLTRIM(STR(RAND(9999)))
lcContentType = "multipart/form-data; boundary=" + lcBoundary

*// 构造表单数据
lcFormData = '--' + lcBoundary + CHR(13) + CHR(10) + ;
              'Content-Disposition: form-data; name="files"; filename="选择的文件.TXT"' + CHR(13) + CHR(10) + ;
              'Content-Type: multipart/form-data' + CHR(13) + CHR(10) + CHR(13) + CHR(10) +;
              lcFileContent + CHR(13) + CHR(10) +;
              '--' + lcBoundary + CHR(13) + CHR(10) + ;
              'Content-Disposition: form-data; name="descriptions"' + CHR(13) + CHR(10) + CHR(13) + CHR(10) + ;
              lcDescription + CHR(13) + CHR(10) + ;
              '--' + lcBoundary + '--' + CHR(13) + CHR(10)

*// 设置请求头
loXmlHttp.setRequestHeader("Content-Type", lcContentType)
loXmlHttp.setRequestHeader("Authorization", "Bearer " + lcApiKey)

*// 发送POST请求
loXmlHttp.send(lcFormData)

[此贴子已经被作者于2024-4-5 01:46编辑过]

搜索更多相关主题的帖子: XMLHTTP 上传文件 请求 出现 构造 
2024-04-05 01:44
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:10 
1、数据发送是否成功有效
2、试试:将包头数据每行尾只用1次回车换行符,最后尾部用2次回车换行符。
2024-04-05 11:01
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:333
专家分:810
注 册:2021-1-9
收藏
得分:10 
m.http=CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
m.http.setTimeouts(5000, 5000, 5000, 5000)
m.lcUrl ="https://api.
m.http.Open("post", m.lcUrl, .f.)
m.http.setRequestHeader('Content-Type','application/json')
m.http.setRequestHeader('Authorization','Bearer sk************************')
TEXT TO post1 NOSHOW PRETEXT 7
{
    "model": "moonshot-v1-8k",
    "messages": [
        {
            "role": "system",
            "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"
        },
        { "role": "user", "content": "你好,VFP还好吗" }
    ],
    "temperature": 0.3
}
ENDTEXT
m.http.send(post1 )
m.lcRes = m.http.responseBODY
    m.lcRes = STRCONV(m.lcRes,11)
    RELEASE m.http
?m.lcRes
2024-04-05 16:55
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:333
专家分:810
注 册:2021-1-9
收藏
得分:0 
简单试了一下
FILETOSTR后  应该 setRequestHeader('Content-Type','application/json')  可以了
2024-04-05 16:56
快速回复:用MSXML2.XMLHTTP上传文件,出现的问题,搞了两天了,晕啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026779 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved