我需要使用webservice(.Net asmx),其中很少有方法接受.Net对象作为参数。例如,一种方法就有这种特征:
public Item SaveData(string itemName, string guid, Location storeAddress, Price price)
前两个参数是简单对象(字符串),所以没有什么特别的发送到WS。我的问题是最后2个参数。该位置在.Net上定义为:
public class Location
{
double longitude, latitude;
public Location()
{
}
public Location(double longitude, double latitude)
{
this.Longitude = longitude;
this.Latitude = latitude;
}
public Location(String longitude, String latitude)
{
this.Longitude = double.Parse(longitude);
this.Latitude = double.Parse(latitude);
}
public double Longitude
{
get { return longitude; }
set { longitude = value; }
}
public double Latitude
{
get { return latitude; }
set { latitude = value; }
}
}
和价格//不是所有的代码
public class Price {
//private vars
public Price(float price, float discount, string currency){
//vars assignment
}
//more methods and properties
}
现在在Java(android)上,我正在使用HttpClient和HttpParams发送帖子数据。
我的问题是: 1.如何构建JSON以将所需参数发送到服务器? 2.是帮助我构建请求的任何工具吗?我正在寻找能够读取wsdl并构建样本请求的东西。
谢谢。
答案 0 :(得分:1)
您可以通过分析网络方法的输入 XML 来构建 json 字符串。为此,我建议您使用免费工具,例如STORM(或功能丰富的付费工具,如WCF Storm)来翻译您的网络服务的 WSDL 。除此之外,您可以使用jsoneditoronline.org和jsonlint.com来构建和检查json字符串。
例如,以下是您需要传递给Web方法的json字符串的结构。
{
"itemName": "bla bla bla",
"guid": "32sd4fgsd654fg53dfsg",
"storeAddress": {
"longitude": 12.02,
"latitude": 10.32
},
"price": {
"price": 100.01,
"discount": 5.1,
"currency": "USD"
}
}
* 您需要将虚拟值替换为真值。
最后但并非最不重要的是,您可以使用一些Chrome浏览器插件(如 Postman - REST Client )将json字符串发送到您的Web服务并测试响应。