Hallo,
ich möchte gerne auf diese Schnittstelle zugreifen: https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?op=TCKimlikNoDogrula
dazu habe ich auch schon einen recht brauchbaren Code geschrieben. Mein Problem ist, es ist das falsche Format und egal, wie ich es schreibe, es will nicht funktionieren:
Abgeschickt wird es in diesem Format
Aber es müsste in diesem Format übermittelt werden (z.B.)
Der Server wirft diesen Fehler aus:
... heißt so viel wie "Sie können diese variablen nicht leer übermitteln".
Was mache ich falsch?
ich möchte gerne auf diese Schnittstelle zugreifen: https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?op=TCKimlikNoDogrula
dazu habe ich auch schon einen recht brauchbaren Code geschrieben. Mein Problem ist, es ist das falsche Format und egal, wie ich es schreibe, es will nicht funktionieren:
Java:
package sevsoap;
import javax.xml.soap.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class SevSOAP
{
public static void main(String args[])
{
try
{
// Create SOAP Connection
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
// Send SOAP Message to SOAP Server
String url = "https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?op=TCKimlikNoDogrula";
SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(), url);
// Process the SOAP Response
printSOAPResponse(soapResponse);
soapConnection.close();
}
catch(Exception e)
{
System.err.println("Error occurred while sending SOAP Request to Server");
e.printStackTrace();
}
}
private static SOAPMessage createSOAPRequest() throws Exception
{
SOAPMessage message = MessageFactory.newInstance().createMessage();
SOAPPart soapPart = message.getSOAPPart();
// SOAP Envelope
SOAPEnvelope envelope = soapPart.getEnvelope();
envelope.addNamespaceDeclaration("xsd", "http://www.w3.org/2001/XMLSchema");
envelope.addNamespaceDeclaration("xsi", "http://www.w3.org/2001/XMLSchema-instance");
// SOAP Body
SOAPBody soapBody = envelope.getBody();
SOAPElement soapBodyElem = soapBody.addChildElement("TCKimlikNoDogrula");
SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("TCKimlikNo");
soapBodyElem1.addTextNode("10000000146");
SOAPElement soapBodyElem2 = soapBodyElem.addChildElement("Ad");
soapBodyElem2.addTextNode("Mustafa");
SOAPElement soapBodyElem3 = soapBodyElem.addChildElement("Soyad");
soapBodyElem3.addTextNode("Atatürk");
SOAPElement soapBodyElem4 = soapBodyElem.addChildElement("DogumYili");
soapBodyElem4.addTextNode("1881");
MimeHeaders headers = message.getMimeHeaders();
headers.addHeader("SOAPAction", "http://tckimlik.nvi.gov.tr/WS/TCKimlikNoDogrula");
message.saveChanges();
/* Print the request message */
System.out.print("Request SOAP Message = ");
message.writeTo(System.out);
System.out.println();
return message;
}
/**
* Method used to print the SOAP Response
*/
private static void printSOAPResponse(SOAPMessage soapResponse) throws Exception {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
Source sourceContent = soapResponse.getSOAPPart().getContent();
System.out.print("\nResponse SOAP Message = ");
StreamResult result = new StreamResult(System.out);
transformer.transform(sourceContent, result);
}
}
Abgeschickt wird es in diesem Format
Code:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<TCKimlikNoDogrula>
<TCKimlikNo>10000000146</TCKimlikNo>
<Ad>Mustafa</Ad>
<Soyad>Atatürk</Soyad>
<DogumYili>1881</DogumYili>
</TCKimlikNoDogrula>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Aber es müsste in diesem Format übermittelt werden (z.B.)
Code:
<?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:Body>
<TCKimlikNoDogrula xmlns="http://tckimlik.nvi.gov.tr/WS">
<TCKimlikNo>10000000146</TCKimlikNo>
<Ad>Mustafa</Ad>
<Soyad>Atatürk</Soyad>
<DogumYili>1881</DogumYili>
</TCKimlikNoDogrula>
</soap:Body>
</soap:Envelope>
Der Server wirft diesen Fehler aus:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Server was unable to process request. ---> T.C. Kimlik No değeri 10000000000 değerinden büyük veya eşit ve 89999999999 değerinden küçük veya eşit olmalıdır.
T.C. Kimlik No alanına girdiğiniz değer geçerli bir T.C. Kimlik Numarası değildir.
Ad alanını boş geçemezsiniz.
Soyad alanını boş geçemezsiniz.
Doğum Yıl değeri 1000 değerinden büyük veya eşit ve 9999 değerinden küçük veya eşit olmalıdır.
</faultstring>
<detail/>
</soap:Fault>
</soap:Body>
</soap:Envelope>
... heißt so viel wie "Sie können diese variablen nicht leer übermitteln".
Was mache ich falsch?
Zuletzt bearbeitet: