我正在使用C#发送JSON帖子。如果我直接在请求中硬编码值,一切正常。但我想以变量的形式发送它,但是失败了。我尝试了不同的方法,但我找不到任何解决方案。 我试图从#num;#39;中获取价值。 ID字段中的变量是172024,但在响应中我得到的字符串不是值。
这是我的代码
static void Main(string[] args)
{
//Make a Json request
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://IPaddress/apibxe_json.php");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string num;
num = Convert.ToString("172024");
Console.WriteLine(num);
string json = "[ { \"connection\" : { \"PS\": \"99778\", \"pr\" : \"******\" }}, {\"execute\" : { \"name\" : \"NewAPI\", \"params\" : { \"Action\" : \"NEW\", \"ID\": \"$num\" , \"Dlr\" : \"&&&&&\"}}}]";
streamWriter.Write(json);
}
//Get the response
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var responseText = streamReader.ReadToEnd();
JArray jresponse = JArray.Parse(responseText);
Console.WriteLine(jresponse);
}
}
答案 0 :(得分:1)
作为字符串连接的替代方法,您可能需要考虑创建一个类来表示您正在写入请求正文的JSON,并将其序列化,以便它更容易使用。< / p>
我注意到您已经在使用JSON.NET--这里是如何使用该库(使用json2csharp生成的类。)他们可以使用一些清理,但这只是一个例子):
public class Connection
{
public string PS { get; set; }
public string pr { get; set; }
}
public class Params
{
public string Action { get; set; }
public int ID { get; set; }
public string Dlr { get; set; }
}
public class Execute
{
public Execute()
{
this.Parameters = new Params();
}
public string name { get; set; }
[JsonProperty("params")]
public Params Parameters { get; set; }
}
public class Request
{
public Request()
{
this.connection = new Connection();
this.execute = new Execute();
}
public Connection connection { get; set; }
public Execute execute { get; set; }
}
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
var request = new Request();
/* Set other properties as well */
request.execute.Parameters.ID = 172024;
string json = JsonConvert.SerializeObject(request);
streamWriter.Write(json);
}
答案 1 :(得分:0)
代码片段可能对您有帮助(在MVC上)....
public JsonResult LoadName(string temp)
{
var fromBd=temp+" Bangladesh";
return Json(fromBd,JsonRequestBehavior.AllowGet);
}
Jquery函数是......
function(){
var temp='From';
$.get("/BasicSettings/Ajax/LoadName", { temp: temp}, function (data) {
$('span').html(data.fromBd);
});
}