C# 在WCF服务中始终返回带有Json的XML字符串

C# 在WCF服务中始终返回带有Json的XML字符串,c#,json,web-services,wcf,C#,Json,Web Services,Wcf,我的WCF服务总是返回: <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"> JSON STRING </string> 接口实现: public class UserService : IUserService { public string getUserByUID(string uid) { UserDAO mUserDAO = UserServi

我的WCF服务总是返回:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"> JSON STRING </string>
接口实现:

public class UserService : IUserService
{
    public string getUserByUID(string uid)
    {
        UserDAO mUserDAO = UserService.getUserDAO();
        User mUser = mUserDAO.getUserByUID(Convert.ToInt64(uid));
        if (mUser != null)
        {
            mUserDAO.close();
            return JsonConvert.SerializeObject(mUser);
        }
Web配置:

    <behavior name="restfulBehavior">
      <webHttp />
    </behavior>
从服务器返回的数据

D/Retrofit﹕ <--- HTTP 200 http://localhost/UserService.svc/GetUserById?x=1 (92ms)
D/Retrofit﹕ Content-Length: 446
D/Retrofit﹕ Content-Type: application/xml; charset=utf-8
D/Retrofit﹕ Server: Microsoft-IIS/7.5
D/Retrofit﹕ X-Powered-By: ASP.NET
D/Retrofit﹕ Date: Thu, 18 Jun 2015 03:32:53 GMT
D/Retrofit﹕ OkHttp-Selected-Protocol: http/1.1
D/Retrofit﹕ OkHttp-Sent-Millis: 1434598232505
D/Retrofit﹕ OkHttp-Received-Millis: 1434598232588
D/Retrofit﹕ <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">{JSON STRING}</string>
D/Retrofit﹕ <--- END HTTP (446-byte body)

D/改装﹕  您需要声明内容类型和接受类型才能接收JSON响应

我不知道你怎么称呼你的服务。我将用C#写一个例子。然而,它可以很容易地翻译成任何其他语言

WebClient wc = new WebClient(); 
wc.Headers.Add("Content-Type", "application/json; charset=utf-8");
wc.Headers.Add("Accept", "application/json");
wc.DownloadString("http://yourUrl.com/GetUserById?x=1");

它对我有效:)

关于这个问题,这是一个基础设施问题,FTP没有更新站点,代码中的更新在我测试时没有反映出来

但我发现我的代码也错了。下面您可以找到正在工作的一个。我希望它能帮助其他人

public class UserService : IUserService
{
    public User getUserByUID(string uid)
    {
        UserDAO mUserDAO = UserService.getUserDAO();
        User mUser = mUserDAO.getUserByUID(Convert.ToInt64(uid));
        if (mUser != null)
        {
            mUserDAO.close();
            return mUser;
        }

你怎么称呼你的服务?@YeldarKurmangaliyev,我在使用改装。我添加了呼叫和返回数据。谢谢。我在通话中更改了标题,但服务仍会发送。请参阅改装呼叫信息:D/改装﹕ ---> HTTP GET D/改造﹕ 接受:应用程序/json D/改造﹕ 内容类型:application/json;字符集=utf-8 D/改装﹕ ---> 结束HTTP(无正文)。谢谢。@Carlos我和你有同样的问题,但我不是在网络客户机上消费,而是在使用httpclient@rogue39nin,我修改了这一行返回JsonConvert.SerializeObject(mUser)的错误;回到缪斯;是的,我的是一团糟,试图返回一个字符串而不是对象所有工作甜蜜现在爱的方式
WebClient wc = new WebClient(); 
wc.Headers.Add("Content-Type", "application/json; charset=utf-8");
wc.Headers.Add("Accept", "application/json");
wc.DownloadString("http://yourUrl.com/GetUserById?x=1");
public class UserService : IUserService
{
    public User getUserByUID(string uid)
    {
        UserDAO mUserDAO = UserService.getUserDAO();
        User mUser = mUserDAO.getUserByUID(Convert.ToInt64(uid));
        if (mUser != null)
        {
            mUserDAO.close();
            return mUser;
        }