none
如何讓C#client 端 用POST的方式傳json格式到PHP上的API呢 RRS feed

  • 問題

  • 如標題所寫的

    我想讓C#的client端傳json至PHP上的api

    然而我參考的網站是 http://www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using System.Net;
    using System.IO;
    
    
    
    
    
    namespace test1
    {
    
        class Product
        {
            public string name { get; set; }
            public double price { get; set; }
            public string category { get; set; }
        }
    
        class Program
        {
            static void Main()
            {
                RunAsync().Wait();
                System.Console.ReadKey();
            }
    
            static async Task RunAsync()
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://192.xxx.xx.xxx/api/myapi.php");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    
                  
                    HttpResponseMessage response =  client.GetAsync("http://192.xxx.xx.xxx/api/myapi.php").Result;
           
                    // HTTP POST
                    var gizmo = new Product() { name = "Gizmo", price = 100, category = "Widget" };
                  
                    response =   client.PostAsJsonAsync("192.xxx.xx.xxx/api/myapi.php", gizmo).Result;
                    if (response.IsSuccessStatusCode)
                    {
                        var product = response.Content.ReadAsAsync<Product>().Result;
                      
                         Console.WriteLine("yes");
                         Console.WriteLine("{0}\t{1}\t{2}", product.name, product.price, product.category);
                        
                    }
                    else
                    {
                        Console.WriteLine("no");
                    }
                }
            }
        }
    }



    這是我的程式碼



    請問哪裡出問題



    PS:HttpWebRequest

    好像也可做是嗎??但感覺有點複雜

    PS2:這是別人寫的PHP API不知道行不行也是我連的

    <?php
       
    	$value = file_get_contents('php://input'); 
    	header('Content-type: application/json');          
        echo json_encode($value); 
    	
    ?>





    • 已編輯 小菜鳥 2015年10月1日 上午 06:03
    2015年10月1日 上午 03:10

所有回覆