Я прочитал каждое сообщение об этой проблеме, но ничто не решило проблему. Буду рад, если кто-то может мне помочь.Функция Asp.net WebService не возвращается JSON
Существует проект MVC3 с веб-сервисом, который я добавил. У меня есть только одна функция Test, и когда я вызываю ее через HTTP GET-метод (обычный url), он возвращает данные с XML-форматом вместо JSON. Как я могу вернуть JSON?
Веб-сервис:
namespace TestServer
{
[WebService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class TestWebservice : System.Web.Services.WebService
{
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public List<string> Test()
{
return new List<string>
{
{"Test1"},
{"Test2"}
};
}
}
}
web.config, (только соответствующие разделы):
<configuration>
<location path="TestWebservice.asmx">
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>
</system.web>
</location>
<system.web>
<webServices>
<protocols>
<clear/>
</protocols>
</webServices>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx"
type="System.Web.Script.Services.ScriptHandlerFactory"
validate="false"/>
</httpHandlers>
</system.web>
</configuration>
URL-адрес:
http://localhost:49740/testwebservice.asmx/Test
Результат (который не то, что я хочу):
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<string>Test1</string>
<string>Test2</string>
</ArrayOfString>
Я буду рад, если кто-то может мне помочь.
О, хорошо, теперь я понимаю проблему. Я просто попытался открыть URL-адрес через мой браузер. Фактическое использование - от iOS, поэтому мне нужно найти способ указать заголовок типа запроса в коде. Кстати, если я решила использовать веб-API MVC 4, я боюсь, что не смогу найти хостинговые сайты, которые его поддерживают. Я прав? – Edi
Нет, вы не правы, потому что вы всегда можете выполнить развертывание bin. Вам не нужен сайт хостинга для поддержки чего-либо. Пока он поддерживает ASP.NET 4.0, вы можете разместить его без каких-либо проблем. –
Получил это. Поэтому я буду использовать новую веб-api. Благодаря! – Edi