c# - 向 RESTful WCF 服务发送发布请求

标签 c# java android wcf android-async-http

我和我的 friend 一起开发我的 android 项目,我们在某个时候卡住了。我正在尝试向 WCF rest web 服务进行异步发布,并且在服务端,我正在将数据插入到 db 中。我通过 JSON 对象发送数据。我打开一个对话框,当请求成功完成时,对话框消失。现在我的问题是,我无法发出 post 请求,实际上,我没有收到任何错误,但似乎有问题。 get请求没有问题。我快疯了,所以我需要你的帮助。这是我的代码

谢谢

Java

        progressDialog = ProgressDialog.show(Activity3.this, "Please wait ...",  "Task in progress ...", true);
        progressDialog.setCancelable(true);
        jarray = new JSONArray();
        json2 = new JSONObject();

        AsyncHttpClient client = new AsyncHttpClient();
        try {

            json2.put("CreateDate", "30.03.2014 15:30:00");
            json2.put("EventCategory", "Yemek");
            json2.put("EventID", "6");
            json2.put("EventName", "Kanatçı Haydar");
            json2.put("EventStatus", "A");
            json2.put("FsqID", "561239");
            json2.put("IsPublic", "False");
            json2.put("LastUpdate", "01.01.0001 00:00:00");
            json2.put("Quota", "8");
            json2.put("UserID", "42");

            StringEntity entity = new StringEntity(json2.toString()); 

            client.post(arg0.getContext(), PURL, entity, "application/json",
                    new AsyncHttpResponseHandler() {
                @Override
                public void onSuccess(String response) {
                    progressDialog.dismiss();
                    Toast.makeText(Activity3.this,response, Toast.LENGTH_LONG).show();
                }

            });

        }

WCF 服务

这是我处理 POST 请求的方式

[OperationContract]
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "New")]
    bool SetAllEvents(Stream st);

这个函数调用JSON解析器

public bool SetAllEvents(Stream s)
    {
        SetEvents se = new SetEvents();

        var data = se.SetNewEvent(s, connStr);
        return true;
    }

这就是我解析 JSON 的方式

StreamReader reader = new StreamReader(inputStream);
            string json = reader.ReadToEnd();

            var Jsonobject = JsonConvert.DeserializeObject<Events>(json);

            string eventName = Jsonobject.EventName;

最佳答案

客户端的 httppost header 是什么样的?以下内容可能对您有所帮助:

httpost.setEntity(se);
httpost.setHeader("Accept", "application/json");
httpost.setHeader("Content-type", "application/json");

关于c# - 向 RESTful WCF 服务发送发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22946591/

相关文章:

Webservices(CXF) 和 Jboss 的 Java 类路径问题

java - Android:使用 Intent 发送电子邮件 - 仅提供电子邮件应用程序不起作用

c# - 点-多边形滑动碰撞检测中如何防止浮点误差

java - 跳棋棋步生成的递归有什么问题?

c# - LINQ to SQL - 排序依据、分组依据以及每个组的排序,并带有skip和take

java - @AttributeOverride - 继承一些属性作为默认值

Android:如何在TextView中显示格式化代码?

Android 应用程序在解析 JSON 时崩溃

c# - 如何将斜杠和其他 'url sensitive' 字符传递给 WCF REST 服务?

c# - 如何使用 C# 计算大(5+ GB)文件中字符的出现次数?