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

标签 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

最佳答案

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

告诉他在调用 SalesForcePost.fncPost 时使用正确的 URL,一切都应该没问题。

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

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

您发布的代码不是他的真实代码,否则他不会得到“URI scheme not valid”异常。

关于php - 如何从 .NET 脚本接收 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10382732/

相关文章:

c# - 仅在整行匹配正则表达式时才替换模式

c# - 当我使用 HttpClient 发布 JSON 数据时出现错误 400

php - 如何将 TinyMCE 编辑器与 php 集成

c# - 将 foreach 循环减少为 linq 查询

php - 如何在php中的pdo准备中查找rowCount

.net - inout参数有什么用处吗?

php - POST 值未出现在 recaptcha 中

php - 从 PHP 向 Node.js(socket.io) 发送请求

javascript - javascript 语句中的 Php 语句

PHP 变量的动态名称