我正在与一家公司合作,该公司制作了一个脚本,将POST数据发送到我的PHP脚本(所有设置和端口正确转发等)。
问题是,他们说我的脚本没有设置为处理POST请求。
这是他们的剧本:
尝试
strPost = strPost.Trim.Replace(" ", "%20")
Dim objRequest As HttpWebRequest = WebRequest.Create(strPostURL)
objRequest.Method = "POST"
objRequest.ContentLength = strPost.Length
objRequest.ContentType = "application/x-www-form-urlencoded"
Try
myWriter = New StreamWriter(objRequest.GetRequestStream())
myWriter.Write(strPost)
Catch eg As Exception
Finally
myWriter.Close()
End Try
Dim objResponse As HttpWebResponse = objRequest.GetResponse()
Dim sr As StreamReader
sr = New StreamReader(objResponse.GetResponseStream())
success = sr.ReadToEnd()
sr.Close()
success = "Post Successful"
Catch ex As Exception
success = ex.ToString
End Try
这是我的:
<?PHP
$website = $_POST['web'] ;
$name = $_POST['name'] ;
$tel = $_POST['tel'] ;
$town = $_POST['town'] ;
foreach($_POST as $key => $thisOne){
$out .= $key . ': ' . $thisOne ;
}
if($out)
mail('test@test.com', 'Test', $out) ;
?>
我不确定他们的脚本是什么意思没有设置来处理POST数据,因为$ _POST是正确的用法没有?
感谢您的回复,这就是我的想法,但他很高兴我的脚本有问题。
这是他说他得到的错误:
他告诉我他仍然得到了这个错误并且:
我们使用的代码与Sales Force,Sage以及我们之前完成的其他7个自定义CRM集成一起使用。
:(
谢谢,我发现http://apikitchen.com/允许我对它进行正确的测试,并且它会恢复正常。谢谢你的帮助!一定是他,就像你说的那样。
他现在告诉我他正在收到新的错误!
他刚给我发了以下信息,任何有.NET经验的人都可以看到代码有什么问题吗?:
Try
strPost = "name=lf&town=london&country=uk&web=www.lf.com&tel=0123456789&keywords=sales&pages=5&multivisit=multihitdt=2012/04/30%2014:31referrer=google&landing=home"
strPost = strPost.Trim.Replace(" ", "%20")
Dim objRequest As HttpWebRequest = WebRequest.Create("http://mysite.dyndns-remote.com/myscript.php")
objRequest.Method = "POST"
objRequest.ContentLength = strPost.Length
objRequest.ContentType = "application/x-www-form-urlencoded"
Try
myWriter = New StreamWriter(objRequest.GetRequestStream())
myWriter.Write("name=lf&town=london&country=uk&web=www.lf.com&tel=0123456789&keywords=sales&pages=5&multivisit=multihitdt=2012/04/30%2014:31referrer=google&landing=home")
Catch eg As Exception
Finally
myWriter.Close()
End Try
Dim objResponse As HttpWebResponse = objRequest.GetResponse()
Dim sr As StreamReader
sr = New StreamReader(objResponse.GetResponseStream())
success = sr.ReadToEnd()
sr.Close()
success = "Post Successful"
Catch ex As Exception
success = ex.ToString
End Try
答案 0 :(得分:3)
他传递给Web请求的URI似乎没有效果(Exception表示它是空的)。这是您在此处显示的堆栈跟踪图像的最后一行中的strPostURL
参数。
告诉他在致电SalesForcePost.fncPost
时使用正确的网址,一切都应该没问题。
这绝不是您的错,也与您没有正确处理POST有任何关系。这是他的错。告诉他,如果他不相信你,请把他送到这里给我们看一些代码。
修改强>
至于新错误:这里也是一样的。他没有传递有效的URI字符串。这可能是因为他传递的内容类似于“htt://sometest.com”或“http:/sometest.com”。我们无法帮助您,除非您发布所有必要的代码以查看fncPost
方法的调用方式以及fncPost
方法的大多数代码 - 至少是他创建Web请求的部分
您发布的代码不是他的真实代码,否则他将无法获得“URI方案无效”异常。