Прочитайте json в веб-сервисе asmx

Я создаю веб-сервис в C#, чтобы получить JSON и вставить его в базу данных:

public string SaveData(string resultData)
{

DLR service = new DLR();

string filePath = Server.MapPath("~/Error.txt");

using (StreamWriter writer = new StreamWriter(filePath, true))
{
    writer.WriteLine("Json is sent :" + resultData +
       "" + Environment.NewLine + "Date :" + DateTime.Now.ToString());
    writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine);
}

RootObject obj = JsonConvert.DeserializeObject<RootObject>(resultData,settings);
    foreach (JsonData item in obj.results)
    {
        {
            var connStr = ConfigurationManager.ConnectionStrings["myCon1"].ConnectionString;
            SqlConnection con = new SqlConnection(connStr);
            try
            {
                SqlCommand cmd = new SqlCommand("[insert_RDL]", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@msgId", item.msgId);
                cmd.Parameters.AddWithValue("@to_mobile", item.to);
                cmd.Parameters.AddWithValue("@status", item.status);
                cmd.Parameters.AddWithValue("@ttest", "");
                cmd.Parameters.AddWithValue("@newtest", "");
                con.Open();
                cmd.ExecuteNonQuery();
            }
            finally
            {
                //                    
            }
        }
    }
    return "OK ";
}

Когда я публикую json с помощью ajax на странице aspx, страница отправляет json без проблем. и я вижу JSON в error.txt .

когда я отправляю JSON по php:

<?php
$data = '{"results": [{"msgId": "4000","to": "9665312114","status": "D"}, 
{"msgId": "859911880","to": "966535112578","status": "N"}, 
{"msgId":"859911880","to": "966535112579","status": "S"}]}' ;
$phpObj =  json_decode($data);
print_r($phpObj);
$resultData =  json_encode($phpObj);
print_r($resultData);
$client = new SoapClient("http://asdm.sa/DLR.asmx?wsdl");
$response = $client->SaveData($data);
print_r($response);
?>

----------

JSON отправляет NULL. почему страница не отправляет JSON.

когда я открываю error.txt:

Json отправлено:{"results": [{"msgId": "001","to": "9665312114","status": "D"}, {"msgId": "859911880","to": "966535112578","status": "N"}, {"msgId": "859911880","to": "966535112579","status": "S"}]} Дата: 03.02.2008 6:59: 2 часа дня


Json отправлено:

Дата: 3/2/2018 19:31:35

1 ответ

Решение

Похоже, проблема в отправленном параметре. Пожалуйста, попробуйте следующий код

<?php
$data = '{"results": [{"msgId": "4000","to": "9665312114","status": "D"}, 
{"msgId": "859911880","to": "966535112578","status": "N"}, 
{"msgId":"859911880","to": "966535112579","status": "S"}]}' ;
$phpObj =  json_decode($data);
print_r($phpObj);
$resultData =  json_encode($phpObj);
print_r($resultData);
$client = new SoapClient("http://asdm.sa/DLR.asmx?wsdl");
$param = array('resultData' => $data);
$response = $client->SaveData($param);
print_r($response);
?>
Другие вопросы по тегам