如何从.NET脚本接收POST数据

时间:2012-04-30 11:12:03

标签: php .net post

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


感谢您的回复,这就是我的想法,但他很高兴我的脚本有问题。

这是他说他得到的错误:

.NET error


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

我们使用的代码与Sales Force,Sage以及我们之前完成的其他7个自定义CRM集成一起使用。

:(


谢谢,我发现http://apikitchen.com/允许我对它进行正确的测试,并且它会恢复正常。谢谢你的帮助!一定是他,就像你说的那样。


他现在告诉我他正在收到新的错误!

enter image description here


他刚给我发了以下信息,任何有.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

1 个答案:

答案 0 :(得分:3)

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

告诉他在致电SalesForcePost.fncPost时使用正确的网址,一切都应该没问题。

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

修改
至于新错误:这里也是一样的。他没有传递有效的URI字符串。这可能是因为他传递的内容类似于“htt://sometest.com”或“http:/sometest.com”。我们无法帮助您,除非您发布所有必要的代码以查看fncPost方法的调用方式以及fncPost方法的大多数代码 - 至少是他创建Web请求的部分

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