发送HTTP-Post请求以在VBA中填写表单

时间:2018-05-24 10:35:00

标签: vba excel-vba post http-post httprequest

我收到了很多电子邮件,我需要在我公司拥有的Spigit(https://www.spigit.com/)页面上为每个给我发电子邮件的人创建一个帐户。

这是一个繁琐的过程,每个用户只需几分钟。为了自动执行此操作,我创建了一个Outlook VBA脚本,用于将spigit上的注册表单的发件人姓名及其各自的电子邮件地址解析为excel表。
有人在谷歌搜索如何进一步处理,我有一些“javascript读取excel表并填写表格”的想法。解决方案是使用http post请求,因为表单几乎不是用户机器接口。

所以我研究了使用给定数据创建http post请求的任务。

Sub testhttp()
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    URL = "https://company.spigit.com/main/Admin/UsersAction?action=create_user"
    objHTTP.Open "POST", URL, False
    objHTTP.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64)"
    objHTTP.SetRequestHeader "Content-type", "application/x-www-form-urlencoded; charset=UTF-8"
    objHTTP.SetRequestHeader "Host", "company.spigit.com"
    objHTTP.SetRequestHeader "Referer", "https://company.spigit.com/main/Admin/Dashboard?orig_url=/Page/UserAdmin"
    objHTTP.Send ("form_id=randomstring123&username=testuser123&pw=pw123&pw2=pw123&firstname=Max&lastname=Mustermann&email=maurice@company.com")
End Sub

Thank you thiscode for the code snippet

稍后将调整请求form_id=randomstring...以迭代Excel数据。

问题是,在Excel VBA中执行时,它说

  

无法解析服务器名称或地址。

由于这是我第一次尝试使用httprequests,如果您有任何想法,我想问问您。

提前致谢, 莫里斯

EDIT#1on180524: {@ 3}}如jonathanl的回复中所述,如果网站需要cookie(确实如此!)和一些javascript要在表单上完成(我认为它确实如此?它肯定会检查,无论你的输入是否有效)已验证。) 有了这些界限,我可能会寻找一种更简单的方法,因为在公司环境中使用第三方工具是一项相当大的挑战。

0 个答案:

没有答案