我想向Google Form
发出POST请求,但我遇到找不到的页面。我正在按照this指南使用如何设置POST请求。
我正在使用这个Google Form
:https://docs.google.com/forms/d/1knZJE-3afDGgW9Sqg6Cf6WiMdCSDAkgvi-wc6aRXV3k/viewform
表单有3个字段和一些隐藏的输入字段,如draftResponse和pagehistory,教程中没有提到。
let url = NSURL(string: "https://docs.google.com/spreadsheets/d/1YrQ71fhsX4XQtwV8qHpoHreBeyl1EnNo2pvafsoygtk/edit#gid=990368688")
var request = NSMutableURLRequest(URL: url!)
let session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
var fieldsToPost = "entry.1959479545=test1&entry.354177126=test2&entry.1807599304=test@gmail.com" as NSString
request.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.HTTPBody = fieldsToPost.dataUsingEncoding(NSUTF8StringEncoding)
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
println("Response \(response)")
var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
println(strData)
if error == nil {
println("error")
}
})
task.resume()
不确定我的POST信息是否正确或者我的实现是否正确。你们怎么看?
下面是我的Google Form
页面源输入字段:
input type="text" name="entry.1959479545" value="" class="ss-q-short" id="entry_1959479545" dir="auto" aria-label="First Name " title=""
input type="text" name="entry.354177126" value="" class="ss-q-short" id="entry_354177126" dir="auto" aria-label="Last Name " title=""
input type="hidden" name="draftResponse" value="[,,"-7091411838997769820"]"
input type="hidden" name="pageHistory" value="0"
input type="hidden" name="fbzx" value="-7091411838997769820"
3条答案
按热度按时间tjvv9vkg1#
我在一个公用事业项目中完成了这个任务,请在此repo中查看:https://github.com/goktugyil/QorumLogs
以下是如何设置它的教程:https://github.com/goktugyil/QorumLogs/blob/master/Log%20To%20GoogleDocs.md
下面是代码:
一个常见的错误是使用输入表单的“name”字段,然而您应该使用“id”。
8e2ybdfx2#
斯威夫特4+
在Alamofire的帮助下,现在更容易做到这一点
1.查看表单源代码以获取表单URL和每个表单字段的标题。
1.创建插入每个项目的字段ID的数据变量。
1.使用简单的POST请求提交代码。
ycl3bljg3#
(雨燕5)
为我工作检查:https://docs.google.com/spreadsheets/d/1rYRStyI46L2sjiFF9DTDMlCb2qR2FMtKrZk3USRdXkA/edit#gid=1864592081