1

JSON APIにデータを投稿しようとしています。これが私のコードの外観です。サーバーからエラーが返されます。そこにいる人たちは、すべてをjson文字列として送信していて、1つのパラメーターのみがJSONスターリングであるパラメーターを投稿する必要があると言っています。すなわち。以下のような文字列を含む contact_attributes:

"{\"name\":\"Leigh\",\"surname\":\"Duddy\",\"passport_number\":\" 00000020\",\"unique_identifier\":\"7353280000000020\", \"msisdn\": \"27829042259\",\"bank_account_number\":null,\"bank_account_branch_code\":null,\"bank_account_branch_name\":null,\"bank_detai ls_required\":false,\"membership_number\ ":null,\"bank_account_b ank_id\":null,\"bank_account_account_type_id\":null,\"bank_account_initials\":null,\"bank_account_surname\":null,\"bank_account_p assport_number\":null,\"生年月日\":null,\"debit_day\":null,\"contract_sale_date\":null,\"contract_start_date\":null}"

私は完全に混乱しています。これを行う方法を知っている人はいますか。

public class JsonSaleData
    {
        [DataMember]
        public string contact_attributes { get; set; }
        [DataMember]
        public string campaign_uuid = "9d119cce-25ea-46bc-b7bc-cba7e8323e91";
        [DataMember]
        public string user_credentials = "OCPdNbeltviij8C1RLcf";
        [DataMember]
        public string license_id = "1";

    }

private string PostSaleToClient(string url, JsonSaleData _SaleData)
        {


            string strResult = "";
            try
            {
                ASCIIEncoding encoding = new ASCIIEncoding();


                System.Net.HttpWebRequest httpWebRequest = (HttpWebRequest)System.Net.WebRequest.Create(url);
                httpWebRequest.Method = "POST";
                httpWebRequest.ContentType = "application/json; charset=utf-8";


                DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(JsonSaleData));
                MemoryStream ms = new MemoryStream();
                ser.WriteObject(ms, _SaleData);
                ms.Position = 0;
                String json = Encoding.UTF8.GetString(ms.ToArray());


                StreamWriter streamWriter = new StreamWriter(httpWebRequest.GetRequestStream());
                streamWriter.Write(json);
                streamWriter.Flush();
                streamWriter.Close();

                System.Net.HttpWebResponse httpWebResp = (HttpWebResponse)httpWebRequest.GetResponse();
                using (var streamReader = new StreamReader(httpWebResp.GetResponseStream()))
                {
                     strResult = streamReader.ReadToEnd();
                }

                return strResult;

            }
            catch (Exception ex)
            {
                string e = ex.Message;
            }

           return strResult;


        }
4

2 に答える 2