如何从c#通过localhost发布json并获取php中的数据?

我正在尝试用一个非常简单的UI来做一个简单的程序。</ p>

< p>只需按一下ac#windows形式的按钮,当我按下按钮时,它会将一个简单的数组编码到Json并将其上传到 http:// localhost ,然后用PHP获取json数据。</ p>

这是我现在的代码在c#</ p>

  private void button_Click(  object sender,RoutedEventArgs e)
{
var httpWebRequest =(HttpWebRequest)WebRequest.Create(“http:// localhost:8080 / SemesterProject / index.php”);
httpWebRequest.ContentType =“application / json”;

httpWebRequest.Method =“POST”;

使用(var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer()。Serialize(new
{
user =“Foo”,
password =“Baz”
});

streamWriter.Write(json);
Console.WriteLine(“Console.WriteLine(json);”);
Co nsole.WriteLine(json);

}

var httpResponse =(HttpWebResponse)httpWebRequest.GetResponse();
using(var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{

var result = streamReader.ReadToEnd();
Console.WriteLine(“Console.WriteLine(result);”);
Console.WriteLine(result);

}
}
</ </ pre>

这是我在PHP中的代码:</ p>

 &lt;?php 
$ post = file_get_contents(“php:// 输入“);
$ decodingjson = json_decode($ post,true);
var_dump($ decodingjson);

?&gt;
</ code> </ pre>

在PHP 输出我得到
'NULL'
并在c#输出中得到</ p>

  Console.WriteLine(json); 
{“user”:“Foo”,“password” :“Baz”}

Console.WriteLine(result);
array(2){
[“user”] =&gt;
string(3)“Foo”
[“password”] =&gt;
string(3)“Baz”
}
</ code> </ pre>

之后我需要将数据从PHP发布到phpMyAdmin数据库</ p>
</ div>

展开原文

原文

I'm trying to do a simple program with a very simple UI.

Just a button in a c# windows form, when i press the button it encodes a simple array to Json and upload it to http://localhost, and then get the json data in PHP.

This is my code now in c#

private void button_Click(object sender, RoutedEventArgs e)
{
    var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:8080/SemesterProject/index.php");
    httpWebRequest.ContentType = "application/json";
    httpWebRequest.Method = "POST";

    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
    {
        string json = new JavaScriptSerializer().Serialize(new
        {
            user = "Foo",
            password = "Baz"
        });

        streamWriter.Write(json);
        Console.WriteLine("Console.WriteLine(json);");
        Console.WriteLine(json);

    }


    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
    {
        var result = streamReader.ReadToEnd();
        Console.WriteLine("Console.WriteLine(result);");
        Console.WriteLine(result);

    }
}

And this is my code in PHP:

<?php
$post= file_get_contents("php://input");
$decodedjson=json_decode($post,true);
var_dump($decodedjson);

?>

at PHP output i get 'NULL' and in c# output i get

Console.WriteLine(json);
{"user":"Foo","password":"Baz"}
Console.WriteLine(result);
array(2) {
  ["user"]=>
  string(3) "Foo"
  ["password"]=>
  string(3) "Baz"
}

After this i need to post the data from PHP to phpMyAdmin database

dongxing6802
dongxing6802 那么您从PHP应用程序中获得了.NET中的有效响应?
3 年多之前 回复

1个回答



尝试简单的方法:</ p>

  using System; 

使用System.Collections.Generic ;
使用System.ComponentModel;
使用System.Data;
使用System.Drawing;
使用System.Linq;
使用System.Text;
使用System.Windows.Forms;
使用System.Collections.Specialized;
使用系统 .Net;

namespace WindowsFormsApplication1
{
公共部分类Form1:Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(对象发送者) ,EventArgs e)
{

using(var client = new WebClient())
{
var postData = new NameValueCollection();
postData [“user”] =“Foo”;
postData [“password”] =“Baz”;
var response = client.UploadValues(“http://localhost/xxx.php”,postData);
var data = Encoding.Default.GetString(response);
// Console.WriteLine(“来自服务器的数据:”+数据);
消息 Box.Show(data);
}

}
}
}
</ code> </ pre>

// php file xxx.php </ p> \ n

 &lt;?php 
echo json_encode($ _ POST);
?&gt;
</ code> </ pre>

在消息框中将显示dos string </ p>
</ div>

展开原文

原文

Try simple way:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections.Specialized;
using System.Net;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
    public Form1()
        {
        InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

        using (var client = new WebClient())
            {
            var postData = new NameValueCollection();
            postData["user"] = "Foo";
            postData["password"] = "Baz";
            var response = client.UploadValues("http://localhost/xxx.php", postData);
            var data = Encoding.Default.GetString(response);
            // Console.WriteLine("Data from server: " + data);
            MessageBox.Show(data);
            }

        }
    }
}

// php file xxx.php

<?php
echo json_encode($_POST);
?>

In your message box will dosplay json string

dongxingdu9594
dongxingdu9594 “显示” - >在谷歌搜索
3 年多之前 回复
doudiza9154
doudiza9154 您需要在google中显示保存到文件,例如:file_put_contents('file.txt',json_encode($ _ POST));
3 年多之前 回复
down100009
down100009 哪个脚本? 这就是我需要做的
3 年多之前 回复
dtml3340
dtml3340 从我的示例中更改URL和文件名
3 年多之前 回复
duanniedang3946
duanniedang3946 但如果你需要在php端保存一些东西,你需要添加一些脚本
3 年多之前 回复
douhe3313
douhe3313 它现在可以测试它
3 年多之前 回复
douchao1864
douchao1864 它弹出一个带有文本的窗口(没有toString())但在php中仍然[]
3 年多之前 回复
dsms21398
dsms21398 现在看看并测试一下。
3 年多之前 回复
douao2019
douao2019 为了你想要的发送json,你只能发送帖子数据
3 年多之前 回复
duanchi8112
duanchi8112 这是输出:“C:\ xampp \ php \ php.exe”“C:\ xampp \ htdocs \ SemesterProject \ index.php”[]完成。
3 年多之前 回复
dragam0217
dragam0217 第一个代码发送数据到文件api.php然后在php文件中你可以写:echo json_encode($ _ POST);
3 年多之前 回复
dongqing314511
dongqing314511 无论如何,它没有通过json ......
3 年多之前 回复
douchui3933
douchui3933 我需要写这个吗? var response = client.UploadValues(“localhost:8080 / SemesterProject / index.php”,postData);
3 年多之前 回复
douwo3665
douwo3665 github.com/fxstar/Chash/blob/master/POST-request-send.php
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问