【发布时间】:2010-10-22 07:06:41
【问题描述】:
Json 对象返回到一个获取 i/p 的 web 服务
[OperationContract(Name = "Create")]
[WebInvoke(UriTemplate = "/Create/Data", Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat=WebMessageFormat.Json)]
bool CreateCustomer(StringBuilder objCustomer);
//在我的服务文件中,我将 i/p obj 反序列化为我的类对象并插入
public bool Create(StringBuilder strObj)
{
JavaScriptSerializer js = new JavaScriptSerializer();
Customer custObj = js.Deserialize<Customer>(strObj.ToString());
bool Inserted = false;
//建立连接并放入数据
来自 im asp.net 客户端的 obj 被序列化为 json 格式,它可以插入到我的数据库中,但从 android 中,我的服务无法识别他们发送的 JSON 对象..但是对他们的响应去作为“OK 200”..
安卓代码是
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
HttpResponse response;
JSONObject json = new JSONObject();
String URL ="http://10.242.48.54/restinsert/Service1.svc/Create/Data";
try{
HttpPost post = new HttpPost(URL);
json.put("CNo",200);
json.put("CName","addme");
StringEntity se = new StringEntity(json.toString());
se.setContentType("application/json; charset=utf-8");
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json; charset=utf-8"));
post.setHeader("Accept","application/json");
post.setHeader("Content-type","application/json; charset=utf-8");
String ss= post.toString();
response = client.execute(post);
为序列化和反序列化创建了一个新类
public class Json
{
public string JsontoString(string obj)
{
JavaScriptSerializer js = new JavaScriptSerializer();
StringBuilder sb = new StringBuilder();
js.Serialize(obj, sb);
return sb.ToString();
}
public string StringtoJson(string obj)
{
JavaScriptSerializer js = new JavaScriptSerializer();
Customer custObj = js.Deserialize<Customer>(obj.ToString());
return custObj.ToString();
}
}
}
【问题讨论】:
-
那么您的意思是在您的Android 应用程序中创建一个JSON 对象并将其发送到您的.NET Web 服务?而您的 .NET Web 服务无法解析/反序列化该对象?您可能希望包含显示如何在 Android 应用程序中创建 JSON 对象的代码,否则很难帮助您...
-
是的......但我有在android中创建json的代码,在它请求我的服务后,响应显示“OK 200”的状态......但我的数据没有被访问REST 服务.. :(
-
“未被我的 REST 服务访问”是什么意思?当 Web 服务尝试解析/反序列化数据时,您是否遇到异常(在运行 Web 服务的服务器上)?如果是这样,您应该在问题中包含错误消息以更好地理解问题。正如我上面所说的,如果您在 Android 应用程序中包含创建 JSON 对象的代码,这可能会很有用。因此,请使用更多信息/代码/错误消息更新您的问题,然后也许有人可以帮助您。
-
没有错误消息..它显示来自 RESTservice 的响应是完美的..但是我的休息服务没有插入数据...如果我创建了一个 asp.net 客户端并插入, REST服务是正确的..!!
-
这是安卓代码