簡體   English   中英

如何使用REST / SOAP在Java中獲取fedex的跟蹤詳細信息?

[英]how to get tracking detail of fedex using REST/SOAP in java?

我需要使用FEDEX的 TRACKING NUMBER獲取跟蹤詳細信息

https://www.fedex.com/apps/fedextrack/?action=track&cntry_code=us&tracknumber_list=6101788800412564

我需要使用java獲取機架詳細信息的xml。 僅使用cntry_code和tracknumber_list

謝謝。

這是一個使用SOAP的示例Java程序。 在序列化輸出之后,請使用正確的API密鑰和其他憑據來生成XML響應。

package fedexPackage;
import java.io.IOException;
import javax.xml.soap.*;
public class Fedex {
    private static String KEY = "xxxxxxxxxxxxxxxxxx";
    private static String PASSWORD ="xxxxxxxxxxxxxx";
    private static String ACCOUNTNUMBER ="xxxxxxxxxxxx";
    private static String METERNUMBER ="xxxxxxxxxxxx";
    private static String CTID = "Track By Number_v16";
    private static String LANGUAGECODE = "EN";
    private static String LOCALECODE = "US";
    private static String SERVICEID ="trck";
    private static String MAJOR = "16";
    private static String INTERMEDIATE ="0";
    private static String MINOR ="0";
    private static String TYPE ="TRACKING_NUMBER_OR_DOORTAG";
    private static String VALUE ="xxxxxxxxxxx";
    private static String GC ="rates evertitque aequora";
    public static void main(String[] args)
    {
        String soapEndpointUrl = "https://wsbeta.fedex.com:443/web-services"; 
        String soapAction = "http://schemas.xmlsoap.org/soap/envelope/"; 
        SOAPConnectionFactory soapConnectionFactory;
        try {
            soapConnectionFactory = SOAPConnectionFactory.newInstance();
               SOAPConnection soapConnection = soapConnectionFactory.createConnection();
                SOAPMessage soapRequest = createSOAPRequest(soapAction);
                SOAPMessage soapResponse = soapConnection.call(soapRequest, soapEndpointUrl);
                System.out.println("Response SOAP Message:");
                try {
                    soapResponse.writeTo(System.out);
                } catch (IOException e) {

                    e.printStackTrace();
                }
                System.out.println();
                soapConnection.close();
        } catch (UnsupportedOperationException e) {
            e.printStackTrace();
        } catch (SOAPException e) {
            e.printStackTrace();
        }

    }

    private static SOAPMessage createSOAPRequest(String soapAction) throws SOAPException 
    {
         MessageFactory messageFactory = MessageFactory.newInstance();
            SOAPMessage soapMessage = messageFactory.createMessage();

            createSoapEnvelope(soapMessage);

            MimeHeaders headers = soapMessage.getMimeHeaders();
            headers.addHeader("SOAPAction", soapAction);

            soapMessage.saveChanges();
            System.out.println("Request SOAP Message:");
            try {
                soapMessage.writeTo(System.out);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println("\n");
            return soapMessage;
    }

    private static void createSoapEnvelope(SOAPMessage soapMessage)
    {   
         SOAPPart soapPart = soapMessage.getSOAPPart();
         String myNamespace = "v16";
         String myNamespaceURI = "http://fedex.com/ws/track/v16";

            try {
                SOAPEnvelope envelope = soapPart.getEnvelope();
                envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI);
                SOAPBody soapBody = envelope.getBody();
                SOAPElement TrackRequest = soapBody.addChildElement("TrackRequest", myNamespace);
                SOAPElement WebAuthenticationDetail = TrackRequest.addChildElement("WebAuthenticationDetail", myNamespace);
                SOAPElement UserCredential = WebAuthenticationDetail.addChildElement("UserCredential", myNamespace);
                SOAPElement Key = UserCredential.addChildElement("Key",myNamespace);
                Key.addTextNode(KEY);
                SOAPElement Password = UserCredential.addChildElement("Password",myNamespace);
                Password.addTextNode(PASSWORD);
                SOAPElement ClientDetail = TrackRequest.addChildElement("ClientDetail", myNamespace);
                SOAPElement AccountNumber = ClientDetail.addChildElement("AccountNumber", myNamespace);
                AccountNumber.addTextNode(ACCOUNTNUMBER);
                SOAPElement MeterNumber = ClientDetail.addChildElement("MeterNumber", myNamespace);
                MeterNumber.addTextNode(METERNUMBER);
                SOAPElement TransactionDetail = TrackRequest.addChildElement("TransactionDetail", myNamespace);
                SOAPElement CustomerTransactionId = TransactionDetail.addChildElement("CustomerTransactionId", myNamespace);
                CustomerTransactionId.addTextNode(CTID);
                SOAPElement Localization = TransactionDetail.addChildElement("Localization", myNamespace);
                SOAPElement LanguageCode = Localization.addChildElement("LanguageCode",myNamespace);
                LanguageCode.addTextNode(LANGUAGECODE);
                SOAPElement LocaleCode = Localization.addChildElement("LocaleCode", myNamespace);
                LocaleCode.addTextNode(LOCALECODE);
                SOAPElement Version = TrackRequest.addChildElement("Version", myNamespace);
                SOAPElement ServiceId = Version.addChildElement("ServiceId", myNamespace);
                ServiceId.addTextNode(SERVICEID);
                SOAPElement Major = Version.addChildElement("Major", myNamespace);
                Major.addTextNode(MAJOR);
                SOAPElement Intermediate = Version.addChildElement("Intermediate", myNamespace);
                Intermediate.addTextNode(INTERMEDIATE);
                SOAPElement Minor = Version.addChildElement("Minor", myNamespace);
                Minor.addTextNode(MINOR);
                SOAPElement SelectionDetails = TrackRequest.addChildElement("SelectionDetails", myNamespace);
                SOAPElement PackageIdentifier = SelectionDetails.addChildElement("PackageIdentifier", myNamespace);
                SOAPElement Type = PackageIdentifier.addChildElement("Type", myNamespace);
                Type.addTextNode(TYPE);
                SOAPElement Value = PackageIdentifier.addChildElement("Value", myNamespace);
                Value.addTextNode(VALUE);
                SOAPElement ShipmentAccountNumber = SelectionDetails.addChildElement("ShipmentAccountNumber", myNamespace);
                SOAPElement SecureSpodAccount = SelectionDetails.addChildElement("SecureSpodAccount", myNamespace);
                SOAPElement Destination = SelectionDetails.addChildElement("Destination", myNamespace);
                SOAPElement GeographicCoordinates = Destination.addChildElement("GeographicCoordinates", myNamespace);
                GeographicCoordinates.addTextNode(GC);
            }
            catch (SOAPException e) 
            {
                e.printStackTrace();
            }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM