Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
POSTMAN etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
POSTMAN etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

17 Mart 2015 Salı

Only Web services with a [ScriptService] attribute on the class definition can be called from script.

Hata aşağıdaki gibi:

Servisimizde:
<%@ WebService Language="C#" Class="NSCem.Cem" %>

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Web.Services;
using System.Xml.Serialization;

namespace NSCem
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    //[System.Web.Script.Services.ScriptService]
    public class Cem : System.Web.Services.WebService
    {
  [WebMethod]
        public string f_Hello(string _gelen)
        {
   return "Gelen: "+_gelen;
  }
    }
}

Olması gereken
...
    [System.ComponentModel.ToolboxItem(false)]
    //[System.Web.Script.Services.ScriptService]
    public class Cem : System.Web.Services.WebService
    {
...


POST /HTUS/cem.asmx/f_Hello HTTP/1.1
Host: 10.130.214.205:8082
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache

{"_gelen":"cem"}

POSTMAN ile ajax talebinde bulunalım

Aşağıda chrome ile yakalanmış bir ajax talebi var:

Bu talebin aynısını POSTMAN içinde oluşturalım ama önce gereksiz ayrıntıları kaldırarak:

Şimdi Chrome'da yakaladığımız talebin detaylısını oluşturalım:
Talebin içeriğine baktığınızda JSON tipinde olduğunu görüyorsunuz. Bunu sunucuya da söylemeliyizki HTTP talebinin gövdesini ona göre parçalasın. HTTP Talebimizin JSON formatında olduğunu Content-Type: application/json, charset=UTF-8 ile belirtiyoruz.

Bu kez tüm talebimizin HTTP paketinde nasıl olduğuna bakalım. Bir başlık(header) bir de gövdemiz(body) var. Gövdeye JSON tipinde verimizi yazıyoruz. Başlıkta da bir çok bilgiyle talebimizi yapıyoruz:

Fiddler ile web servisine çağrı yapmak

Bu yazdığımız servis:

POST http://10.130.214.205:8082/HTUS/HastaTahlilUyariServisi.asmx HTTP/1.1
HOST: 10.130.214.205:80828
Content-Type: text/xml; charset=utf-8
SoapAction: "http://tempuri.org/f_HastaninLabTestleri"
Content-Length: 863

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <Ticket xmlns="http://tempuri.org/">
      <TicketNumber>string</TicketNumber>
    </Ticket>
  </soap:Header>
  <soap:Body>
    <f_HastaninLabTestleri xmlns="http://tempuri.org/">
      <_enumKanTahlilikontrolTarih>KAYITTARIHI</_enumKanTahlilikontrolTarih>
      <_enumHastaKontrolKodu>KLINIK_KODU</_enumHastaKontrolKodu>
      <_sCliniclist>18043</_sCliniclist>
      <_dtBaslamaTarihi>2015-01-07</_dtBaslamaTarihi>
      <_dtBitisTarihi>2015-01-07</_dtBitisTarihi>
      <_sTCKimlikNO>32963180024</_sTCKimlikNO>
      <_bGonderilmis>true</_bGonderilmis>
    </f_HastaninLabTestleri>
  </soap:Body>
</soap:Envelope>

XML içerikli bir request yaptık. Fiddler görüntüsü:

Sonucu:

POSTMAN ile yaptığımızda ilk olarak şu hatayı alabiliriz:
Request format is unrecognized for URL unexpectedly ending in '/f_HastaninLabTestleri'.
Metot adının POST ve GET metotlarıyla çağrılabilmesine dair web.config içinde ayar yapmamız gerekecek:
<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
Kaynak: Stackoverflow sorusu.

Şimdi sonucu çekelim:

Şimdi bu talebin nasıl yapıldığına bakalım:
POST /HTUS/HastaTahlilUyariServisi.asmx/f_HastaninLabTestleri HTTP/1.1
Host: 10.130.214.205:8082
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded

_enumKanTahlilikontrolTarih=KAYITTARIHI&_enumHastaKontrolKodu=KLINIK_KODU&_sCliniclist=18043&_dtBaslamaTarihi=2015%2F01%2F07&_dtBitisTarihi=2015%2F01%2F07&_sTCKimlikNO=32963180024&_bGonderilmis=true