Выхлоп веб-сервиса

Тема в разделе ".NET", создана пользователем khisrav, 17 дек 2008.

  1. khisrav

    khisrav Гость

    Привет всем.

    Есть веб сервис (сделан на VisualStudio2005, язык C#), принимает несколько строк, обрабатывает их и возвращает строку. Вот в таком виде:

    <?xml version="1.0" encoding="utf-8" ?>
    <string xmlns="http://tempuri.org/">возвращаемая_строка</string>

    А нужно просто в таком:

    возвращаемая_строка

    Не подскажете, что подкрутить ? Может в Web.Config....

    Спасибо откликнувшимся.
     
  2. etc

    etc Гость

    Правильено написат код.
     
  3. khisrav

    khisrav Гость

    СЕРВИС0 отдает запрос СЕРВИСУ1 (моему, код ниже), СЕРВИС1 обрабатывет, отдает СЕРВИСУ2, получает от него ответ, обрабатывает(обработки пока в коде нет) и отдает назад СЕРВИСУ0. Если подскажете что тут не так, буду очень благодарен :) спасибо.


    using System;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Net;
    using System.Text;
    using System.IO;
    using System.Net.Security;
    using System.Security.Cryptography.X509Certificates;
    using System.Security.Policy;

    class CertPolicy : ICertificatePolicy
    {
    public bool CheckValidationResult(ServicePoint srvPoint, X509Certificate
    certificate, WebRequest request, int certificateProblem)
    {
    return true;
    }
    }


    [WebService(Namespace="My_Service")]


    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class Service : System.Web.Services.WebService
    {
    public Service()
    {

    }

    [WebMethod]



    public string SendQuery(string duser, string dpass, string cid, string trans, string sum)
    {
    //объявление переменных
    string ready_query;
    DateTime dt = DateTime.Now;
    string curr_date = String.Concat(dt.Year, dt.Month, dt.Day);
    string curr_time = String.Concat(dt.Hour, dt.Minute, dt.Second);
    string responce;
    string cer_file_path = "d:/cert.cer";


    //Формирование строки запроса на СЕРВИС2
    ready_query = String.Concat("https://129.9.0.54:7001/xmlinterface.asmx/Payment?ps_id=3222&rrn=", trans,
    "&pt=8&date=", curr_date,
    "&time=", curr_time,
    "&phone=", cid,
    "&amount=", sum,
    "&currency=RUR");


    //создание сертификации из файла-сертификата
    System.Security.Cryptography.X509Certificates.X509Certificate Serv_Certificate =
    System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromCertFile
    (cer_file_path);
    ServicePointManager.CertificatePolicy = new CertPolicy();


    //Отправка запроса на сервер СЕРВИС2 с использованием сертификации
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ready_query);
    request.ClientCertificates.Add(Serv_Certificate);
    request.ContentType = "application/x-www-form-urlencoded";
    request.Method = "GET";

    //Получение ответа от СЕРВИСА2, запись резуьтата в переменную responce
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    Stream receiveStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);
    responce = reader.ReadToEnd();


    //Возврат ответа СЕРВИСУ0
    return responce;

    }


    }
     
  4. etc

    etc Гость

    И где тут "возвращаемая_строка" ?
     
  5. khisrav

    khisrav Гость

  6. etc

    etc Гость

    Ну так дайте в лоб тому кто вам его такой шлет.
     
  7. khisrav

    khisrav Гость

    ?? поясните ...
     
  8. etc

    etc Гость

    А что пояснять, находите того кто вам шлет не то что надо и даете ему в лоб, и так до полного просветления.
    А то чтож он такой эдакий ...
     
  9. khisrav

    khisrav Гость

    шлет моя же служба. я думал тут серьёзный форум.
     
  10. etc

    etc Гость

    Если думали так и показывать надо по серьезному, а не тянуть по капле из вас. У нас собственно проблем нет, они есть у вас, раз тему запостили, вот и рассказывайте что да как, а догадываться никто е будет.

    Или вы считает ответ -
    офигенно серьезным? я нет..
     
  11. Yason

    Yason Гость

    Неа, этот форум ни в коем случае не серьёзный, интересные/нетривиальные вопросы тут редкость. 95% пользователей — студенты-лентяи, просящие сделать за них лабы/курсовые, и элементарные задачки. Иногда трудно сдержаться, чтобы не обматерить незнакомого человека, хотя я по жизни спокоен как удав. А etc тут давно, и его это, видимо, уже порядком допекло.

    По теме, если мне не изменяет память, правильный веб-сервис по определению получает параметры/отдаёт результаты по протоколу SOAP, в основе которого лежит XML. Поэтому если ваш сервис будет отдавать только строку — формально, это уже не веб-сервис.
    К тому же, упрощая себе жизнь сейчас за счёт отказа от XML, вы ограничиваете возможность расширения сервиса в будущем.
    Стандарты — это хорошо.
     
  12. etc

    etc Гость

    Вот вот, и глядя на вопрос и далее создаеться впечатление, что кто-то что-то путает, или не договаривает. Такого респонса как в вопросе, сервис не пришлет (я так думаю (с) B)). Поэтому и спрашивал - где та самая строка ...
     
  13. khisrav

    khisrav Гость

    Привет всем! Ура товарищи! Проблема решена - просто переписал прогу как HttpHandler. Реально подсказали, что рою не туда и куда лучше рыть на майкрософтовском форуме какой-то чувак из дальнего зарубежья - дай Бог ему здоровья. И сделал он это одним коротким и очень очень содержательным ответом, не приведя ни одной строки кода.
    Насчет будущего и стандарта xml. При возникновении потребности я конечно смогу и снова нарисовать нужный мне веб-сервис, но на данный момент нужно только то, что делает хандлер - такова уж задачка ;)
    Спасибо огромноре и низкий поклон старавшимся помочь!
     
  14. etc

    etc Гость

    Ничего не понятно, при чем тут хэндлер .... работая с сервисами надо работать "по их правилам" и все будет ок.
    Всетаки вы утаиваете, ну да и фик с ним.
     
  15. khisrav

    khisrav Гость

    Привет!

    ничего не утаиваю - честное слово. По правилам сервиса я работать не могу, потому что уже сделанные (не мной) ресурсы не работают по тем самым правилам.
     
Загрузка...

Поделиться этой страницей