powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF GET (XML Response)
25 сообщений из 41, страница 1 из 2
WCF GET (XML Response)
    #36511926
sbabiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаю WCF службу с привязкой webHttpBinding

Описываю контракт с атрибутом WebGet

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [WebGet(UriTemplate = "Sub?x={x}&y={y}", ResponseFormat = WebMessageFormat.Xml)]
        string Subtract(long x, long y);
    }


Делаю запрос
http://localhost/payment_app/web/Sub?x=14&y=12

результат выполнения
Код: plaintext
1.
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">x =  14  y =  12 </string> 

как получить результат в виде xml

Код: plaintext
1.
2.
3.
4.
5.
<Response>
       <X></X>
       <Y></Y>
       ....
</Response>

------------------------
Любой дурак может написать код, который может распознать компьютер. Хорошие программисты пишут код, который люди могут понять. ~ Мартин Фаулер
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36511952
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а где код Subtract ?
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36511962
sbabiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bured,

Код: plaintext
1.
2.
3.
public string Subtract(long x, long y)
        {
            return "x = " + x + " y = " + y; 
        }
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512091
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и что ты тогда хотел получить на выходе?
Возвращай массив строк string[] тогда
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512123
sbabiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bured,

я написал что я хотел получить, просто не знаю как сформировать такой xml

переписал

Код: plaintext
1.
2.
3.
4.
5.
        public string[] Subtract(long x, long y)
        {
            string[] values = {x.ToString(), y.ToString()};

            return values;
        }

получил
Код: plaintext
1.
2.
3.
<ArrayOfstring>
<string> 10 </string>
<string> 20 </string>
</ArrayOfstring>

как получить xml с нужными мне именами полей?

Код: plaintext
1.
2.
3.
4.
<Response>
       <X></X>
       <Y></Y>
       ....
</Response>
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512236
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
[DataContract(Namespace = "")]
public class Responzzz
{
    [DataMember]
    public string X{ get; set; }
    [DataMember]
    public string Y{ get; set; }
}
///
[ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [WebGet(UriTemplate = "Sub?x={x}&y={y}", ResponseFormat = WebMessageFormat.Xml)]
        Responzzz Subtract(long x, long y);
    }
///
public Responzzz Subtract(long x, long y)
        {
            return new Responzzz {X = x.ToString(), Y = y.ToString()};
        }
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512243
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
[DataContract(Name = "Response")]
public class Responzzz

...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512368
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sbabiv,

чё там? Есть респонс? :)
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512420
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sbabiv
------------------------
Любой дурак может написать код, который может распознать компьютер. Хорошие программисты пишут код, который люди могут понять. ~ Мартин Фаулер
а реальные перцы сваливают не поблагодарив.
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512434
sbabiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bured,

да есть, только другой

http://localhost/payment_app/web/GetData?value=5&x=48
Код: plaintext
1.
  <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Connection Accept Accept-Encoding Accept-Language Host User-Agent</string> 
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512437
sbabiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bured,

извини, занят был
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512451
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sbabiv,

на клиенте DataContract тоже должен быть
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512460
sbabiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bured,

по-другому разве никак?
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512497
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredsbabiv,

на клиенте DataContract тоже должен быть
наврал. UriTemplate другой должен быть в таком случае. На ощупь не скажу какой.
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512515
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется сериализатор другой нужен. Через [System.SerializableAttribute()] а не ДатаКонтракт
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36512543
sbabiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bured,

завтра гляну
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36528957
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sbabiv,
это контракт
Код: plaintext
1.
2.
3.
4.
5.
<ServiceContract()> _
Public Interface CP
    <OperationContract(), WebGet(UriTemplate:="/clientaccesspolicy.xml")> _
    Function GetCP() As Stream
End Interface
это его реализация.
выдает любой xml.
сделай шаблон и меняй в нем значения. а то долго будешь елозить по сериализаторам всяким.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 Public Function GetCP() As System.IO.Stream Implements CP.GetCP
        'Return Assembly.GetExecutingAssembly().GetManifestResourceStream("OnlineRegCmd.ClientAccessPolicy.xml")
        Const result As String = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
"<access-policy>" & _
"    <cross-domain-access> " & _
"        <policy> " & _
"            <allow-from http-request-headers=""*""> " & _
"                <domain uri=""*""/>" & _
"            </allow-from> " & _
"            <grant-to>" & _
"                <resource path=""/"" include-subpaths=""true""/>" & _
"            </grant-to>" & _
"        </policy>" & _
"    </cross-domain-access>" & _
"</access-policy>"

        If Not IsNothing(WebOperationContext.Current) Then
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/xml"
            Return New MemoryStream(Encoding.UTF8.GetBytes(result))
        End If
    End Function
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36616020
sbabiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiKsbabiv,
это контракт
Код: plaintext
1.
2.
3.
4.
5.
<ServiceContract()> _
Public Interface CP
    <OperationContract(), WebGet(UriTemplate:="/clientaccesspolicy.xml")> _
    Function GetCP() As Stream
End Interface
это его реализация.
выдает любой xml.
сделай шаблон и меняй в нем значения. а то долго будешь елозить по сериализаторам всяким.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 Public Function GetCP() As System.IO.Stream Implements CP.GetCP
        'Return Assembly.GetExecutingAssembly().GetManifestResourceStream("OnlineRegCmd.ClientAccessPolicy.xml")
        Const result As String = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
"<access-policy>" & _
"    <cross-domain-access> " & _
"        <policy> " & _
"            <allow-from http-request-headers=""*""> " & _
"                <domain uri=""*""/>" & _
"            </allow-from> " & _
"            <grant-to>" & _
"                <resource path=""/"" include-subpaths=""true""/>" & _
"            </grant-to>" & _
"        </policy>" & _
"    </cross-domain-access>" & _
"</access-policy>"

        If Not IsNothing(WebOperationContext.Current) Then
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/xml"
            Return New MemoryStream(Encoding.UTF8.GetBytes(result))
        End If
    End Function



ага, спасибо. это правда самый простой и удобный вариант
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36624614
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
[<DataContract>]
type Responce = {
    [<DataMember>] mutable x : string; 
    [<DataMember>] mutable y : string; }

[<ServiceContract>]
type service() =
      [<OperationContract; WebGet (UriTemplate="/xml/{a}/{b}")>]
        member x.getXml (a, b) = {x = a; y = b}
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36626520
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tsyselsky,

можно побольше контекста?
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36626928
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36626940
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36626983
WCF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF
Гость
tsyselsky,

на C# какой аналог будет у кода?
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36627015
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
namespace core.wcf {
    [DataContract]
    public class Responce {
        [DataMember]public string x;
        [DataMember] public string y; 
    }

    [ServiceContract]
    public class service { 
    [OperationContract , WebGet(UriTemplate="/xml/{a}/{b}")]
        public Responce getXml(string a, string b) {
            return new Responce { x = a, y = b};
        }
    }
}
...
Рейтинг: 0 / 0
WCF GET (XML Response)
    #36627305
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tsyselsky,

но это не подходит.
видишь там

Код: plaintext
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">

вот это не должно быть в xml ответе. основное условие сериализации.
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF GET (XML Response)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]