4

我正在与一家公司合作,该公司制作了一个脚本以将 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 是正确的使用 no?


谢谢你的回复,我是这么想的,但他坚持认为我的剧本有问题。

这是他说他得到的错误:

.NET 错误


他告诉我他仍然得到那个错误并且:

我们使用的代码适用于 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
4

1 回答 1

3

他传递给 Web 请求的 URI 似乎无效(异常表示它为空)。这是strPostURL您在此处显示的堆栈跟踪图像的最后一行中的参数。

告诉他打电话时使用正确的 URL SalesForcePost.fncPost,一切都会好起来的。

这绝不是你的错,与你没有正确处理 POST 没有任何关系。这是他的错。告诉他,如果他不相信你,把他送到这里给我们看一些代码。

编辑
至于新的错误:同样的事情。他没有传递有效的 URI 字符串。这可能是因为他传递了“htt://sometest.com”或“http:/sometest.com”之类的内容。fncPost除非您发布所有必要的代码以查看如何调用该方法以及该方法的大部分代码fncPost- 至少是他创建 Web 请求的部分,否则我们无法为您提供任何进一步的帮助。

您发布的代码不是他的真实代码,否则他不会得到“URI 方案无效”异常。

于 2012-04-30T11:23:18.997 回答