PHP HTTP Post to REST服务未更新数据库
我在下面有这个curl请求,在另一篇文章中成功地解决了这个问题。现在,我的PHP似乎没有任何错误地完成了这段代码,转到IF语句的下一部分并发送确认电子邮件。它只是没有从web服务中更新数据库。如果这不起作用,我将不得不向web服务的创建者发送电子邮件,但我只想在执行此操作之前确保代码相当可靠。有人有什么想法吗?代码如下:PHP HTTP Post to REST服务未更新数据库,php,curl,Php,Curl,我在下面有这个curl请求,在另一篇文章中成功地解决了这个问题。现在,我的PHP似乎没有任何错误地完成了这段代码,转到IF语句的下一部分并发送确认电子邮件。它只是没有从web服务中更新数据库。如果这不起作用,我将不得不向web服务的创建者发送电子邮件,但我只想在执行此操作之前确保代码相当可靠。有人有什么想法吗?代码如下: $url = 'http://127.0.0.1:85/AccountCreator.ashx'; $curl_post_data = array( 'compan
$url = 'http://127.0.0.1:85/AccountCreator.ashx';
$curl_post_data = array(
'companyName' =>urlencode($companyName),
'mainContact' =>urlencode($mainContact),
'telephone1' =>urlencode($telephone1),
'email' => urlencode($email),
'contact2' => urlencode($contact2),
'telephone2' => urlencode($telephone2),
'email2' => urlencode($email2),
'package' => urlencode($package)
);
foreach($curl_post_data as $key=>$value) {$fields_string .=$key. '=' .$value.'&';
}
rtrim($fields_string, '&');
//die("Test: ".$fields_string);
$ch = curl_init();
curl_setopt ($ch, CURLOPT, $url);
curl_setopt ($ch, CURLOPT_POST, count($curl_post_data));
curl_setopt ($ch, CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
curl_close($ch);
CURLOPT_POSTFIELDS选项接受POST数据的关联数组。可能最好使用这个字符串,而不是自己构造查询字符串,这样当它爆炸时,您就可以责怪其他人了 PHP手册: 要在HTTP“post”中发布的完整数据 活动要发布文件,请在 文件名为@,并使用完整路径。 这可以作为 类字符串编码 “para1=val1¶2=val2&…”或作为 将字段名作为键和 字段数据作为值。如果值是 数组,则内容类型标头将为 设置为多部分/表单数据
首先,问题是什么?如果您准确地解释了代码中的故障是什么,那么就更容易进行故障排除。其次,您在这段代码中做了一些奇怪的事情: 我不明白你为什么这么做
curl_setopt ($ch, CURLOPT_POST, count($curl_post_data));
CULLOPT_POST需要布尔(真/假)设置。您应该将其设置为true
其次,您不需要手动编码CURLOPT_POSTFIELDS
。制作一个数组,让cURL在内部处理它:
$curl_post_data = array(
'companyName' =>$companyName,
'mainContact' =>$mainContact,
'telephone1' =>$telephone),
'email' => $email,
'contact2' => $contact2,
'telephone2' => $telephone2,
'email2' => $email2,
'package' => $package
);
这些可能无法解决问题,但可能会有所帮助。是的。这可能没有什么区别(可能是数字被转换为布尔值,因此任何正整数都被解释为true),但可能是忽略了非布尔值。感谢您的回复。我已将其更改为true,并将进行测试。你好,lonesomeday,您关于编码的看法是正确的,我的电子邮件地址以前显示不正确,但自从我删除此项后,现在显示不正确。我已经更新了我的帖子来说明这个问题。我的问题是,这段代码应该调用一个web服务在数据库中创建一个新用户,但是这并没有实现。但是,我没有看到web服务的代码,因为它是由其他人编写的,所以我不确定问题出在哪里。这就是为什么我想消除上述代码的问题