使用本机iOS视图提交Google表单数据
我想知道是否有办法在本机iOS应用程序中创建表单并通过谷歌表单提交。下面是一个我想在iOS应用程序中进行本机操作的网页示例使用本机iOS视图提交Google表单数据,ios,objective-c,form-submit,Ios,Objective C,Form Submit,我想知道是否有办法在本机iOS应用程序中创建表单并通过谷歌表单提交。下面是一个我想在iOS应用程序中进行本机操作的网页示例 您可以按如下方式执行: 创建一些uitextfields作为一些输入文本字段 然后使用AFNetworking提交这些表单值 您可以在此帖子中看到如何使用post变量创建URL请求: 通过检查当前表单的HTML,可以找到URL和变量名。在您的情况下,请将帖子发送到URL: https://docs.google.com/forms/d/1vlYPlNi4xJv6JCHpL
您可以按如下方式执行:
您可以在此帖子中看到如何使用post变量创建URL请求: 通过检查当前表单的HTML,可以找到URL和变量名。在您的情况下,请将帖子发送到URL:
https://docs.google.com/forms/d/1vlYPlNi4xJv6JCHpLrHD6oSrYgUqWOrzF8z6KJjTVuE/formResponse
参数将是entry.1615511943
,entry.1186557728
,等等。您还可以在HTML输入的“name”中找到这些参数
如下所示设置文档类型:
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
数据本身只是字符串,您必须构建一个UI并从中提取它们。是的,有一种方法,我在本报告中使用了这种方法: 以下是如何设置它的教程: 下面是执行此操作的代码:
private static var googleFormLink: String!
private static var googleFormAppVersionField: String!
private static var googleFormUserInfoField: String!
private static var googleFormMethodInfoField: String!
private static var googleFormErrorTextField: String!
/// Setup Google Form links
static func setupOnlineLogs(#formLink: String, versionField: String, userInfoField: String, methodInfoField: String, textField: String) {
googleFormLink = formLink
googleFormAppVersionField = versionField
googleFormUserInfoField = userInfoField
googleFormMethodInfoField = methodInfoField
googleFormErrorTextField = textField
}
private static func sendError(#text: String) {
var url = NSURL(string: googleFormLink)
var postData = googleFormAppVersionField + "=" + text
postData += "&" + googleFormUserInfoField + "=" + "anothertext"
postData += "&" + googleFormMethodInfoField + "=" + "anothertext"
postData += "&" + googleFormErrorTextField + "=" + "anothertext"
var request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST"
request.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.HTTPBody = postData.dataUsingEncoding(NSUTF8StringEncoding)
var connection = NSURLConnection(request: request, delegate: nil, startImmediately: true)
}
我开始处理上面Joe的回复(),但在请求中得到了404,而没有在他的URL中的
/d
之后添加/e
。通过比较共享表单链接和Joe的链接发现了这一点。进行了一些测试,并使其正常工作。下面是我使用Swift和AlamoFire的代码,因为我的项目中已经有了它。注意:我要传递的contactInfo.paramaters
只是一个简单的结构,它带有一个computedparameters
属性,用于从我的iOS版表单中吐出收集的信息
func上传(){
var headers=HTTPHeaders()
标题[“内容类型”]=“应用程序/x-www-form-urlencoded”
Alamofire.request(“https://docs.google.com/forms/d/e//formResponse",
方法:.post,
参数:contactInfo.paramaters,
headers:headers.validate().response中的{(response)
打印(答复)
}
}
无需AFN网络,NSURL连接就足够了。
func upload() {
var headers = HTTPHeaders()
headers["Content-Type"] = "application/x-www-form-urlencoded"
Alamofire.request("https://docs.google.com/forms/d/e/<enter your forms ID here>/formResponse",
method: .post,
parameters: contactInfo.paramaters,
headers: headers).validate().response { (response) in
print(response)
}
}