Проблема при публикации в службу отдыха - PullRequest
1 голос
/ 20 января 2012

Я пытался сделать это с помощью Restsharp, но не повезло ... поэтому я пытаюсь сделать сообщение для веб-службы отдыха.Мне дали образец XML в следующем виде:

<?xml version="1.0"?>
<root>
<request>
<APIClientID>0</APIClientID >
<Version>0</Version>
<APIPassword>password</APIPassword >
<Function>functionName</Function >
<Params>
<UserId>(current-datetime)</UserId >
<page>example.aspx</page>
<application>appName</application>
<function>functionName</function>
</Params>
</request >
</root >

код, с которым я пытаюсь написать сообщение:

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
        request.Method = "POST";
        request.ContentType = "text/xml";

        byte[] byteData = UTF8Encoding.UTF8.GetBytes(requestXML);

        request.ContentLength = byteData.Length;

        // Write data  
        using (Stream postStream = request.GetRequestStream())
        {
            postStream.Write(byteData, 0, byteData.Length);
        }

        HttpWebResponse response = request.GetResponse() as HttpWebResponse;
        StreamReader reader = new StreamReader(response.GetResponseStream());

        string responseString = reader.ReadToEnd();

Однако каждый раз, когда я пытаюсь сделать сообщениевсе, что я получаю, это общий ответ от службы.Любая помощь в том, что я могу делать неправильно, будет принята с благодарностью.Спасибо!

Полагаю, это может помочь опубликовать xml, который я получаю после получения сервиса ...

<Function>TransAPIStats</Function>
<Method>
<post>
<Description>Post api statistics to the DB via the API.</Description>
<Params>
<Client>
<Required>true</Required>
<Description>String</Description>
</Client>
<Page>
<Required>true</Required>
<Description>Integer</Description>
</Page>
<Application>
<Required>true</Required>
<Description>String</Description>
</Application>
<Function>
<Required>true</Required>
<Description>String</Description>
</Function>
</Params>
<Return>
<Result>String</Result>
<Status>String</Status>
<Description>String</Description>
</Return>
</post>
</Method>

Я попытался изменить образец xml, который мне даличтобы соответствовать параметрам, перечисленным в API XML, но он все равно делает то же самое.У меня такое чувство, что это мои проблемы, но, похоже, оно не работает ...

1 Ответ

0 голосов
/ 20 января 2012

Попробуйте это;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/xml";

using (var postStream = new StreamWriter(request.GetRequestStream()))
{
    postStream.Write(requestXML);
}

string responseString = null;
using (var response = (HttpWebResponse)request.GetResponse())
using (var dataStream = response.GetResponseStream())
using (var reader = new StreamReader(dataStream))
{
    responseString = reader.ReadToEnd();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...