C# 在WCF服务中始终返回带有Json的XML字符串
我的WCF服务总是返回: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
<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;
}