我有一个rest ful服务(POST)接受Json对象作为输入(Fiddler中的Request body)。现在我想使用动态值(从文本文件或硬编码值读取)从Console Applciation使用服务。我将记录操作,对于此测试数据XXXXX,服务返回值。
任何人都可以帮助我自动化这个过程。我希望从Console应用程序中提供此服务。
请注意输出也是JSON字符串。
任何建议都对我有用。
答案 0 :(得分:0)
发出POST请求,例如:
var req = WebRequest.Create(url);
var enc = new UTF8Encoding(false);
var data = enc.GetBytes(serializedJson);
req.Method = "POST";
req.ContentType = "application/json";
req.ContentLength = data.Length;
using (var sr = req.GetRequestStream())
{
sr.Write(data, 0, data.Length);
}
var res = req.GetResponse();
var res= new StreamReader(res.GetResponseStream()).ReadToEnd();
您可以从以下对象轻松创建serializedJson
:
var serializedJson = Newtonsoft.Json.JsonConvert.SerializeObject(myDataObject);
答案 1 :(得分:0)
从控制台项目中的nuget安装以下web api软件包
添加对System.Net.Http和System.Runtime.Serialization
的引用创建要发送和接收的数据的合约类(与您的网络服务相同)
[DataContract]
public class YourObject{
[DataMember]
public int Id {get; set;}
}
在您的控制台应用中,请调用以下网络服务:
var client = new HttpClient();
var response = client.PostAsJsonAsync<YourObject>("http://yourserviceurl:port/controller", objectToPost).Result;
if(response.IsSuccessStatusCode){
Console.WriteLine(response);
}else{
Console.WriteLine(response.StatusCode);
}
的详细信息