Problem UPS API unterschiedliche Reference ?

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von iTkrox.

    Problem UPS API unterschiedliche Reference ?

    Hallo zusammen,

    Ich schreibe gerade ein Plugin in vb.net , Ziel des Plugins ist die einbindinung der UPS-Pickup Api in unserere Bestehende Gesamt-Software.

    Allerdings habe ich momenten ein "kleines" Problem, und zwar wird in dem Beispiel des UPS SDK´s (C#) eine Class PickupService zur Verbindung und übergabe des Request-Objekts genutzt welche in der von UPS generierten Reference.cs definiert ist. Diese Class PickupService taucht allerdings beim einbinden der Pickup.wsdl in mein VB Projekt in der Reference.vb leider nicht auf.

    Mein Versuch wahr es, mein Request über den MSXML2.XMLHTTP zu senden was leider in einer unbekanten Exception endet.

    Vileicht hat ja hier eienr eine Idee oder stand selber schon vor dem gleichen oder einem ähnlichen Problem.

    Hier einmal der C# Code aus dem Beispiel
    Spoiler anzeigen

    Brainfuck-Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Text;
    4. using PickupWSSample.PickupWebReference;
    5. using System.ServiceModel;namespace PickupWSSample
    6. {
    7. class PickupClient
    8. {
    9. static void Main()
    10. {
    11. try
    12. {
    13. PickupService pickupService = new PickupService();
    14. PickupCreationRequest pickupCreationRequest = new PickupCreationRequest();
    15. RequestType request = new RequestType();
    16. String[] requestOption = { " " };
    17. request.RequestOption = requestOption;
    18. pickupCreationRequest.Request = request;
    19. pickupCreationRequest.RatePickupIndicator = "N";
    20. ShipperType shipper = new ShipperType();
    21. AccountType account = new AccountType();
    22. account.AccountCountryCode = "DE";
    23. account.AccountNumber = "*******";
    24. shipper.Account = account;
    25. pickupCreationRequest.Shipper = shipper;
    26. PickupDateInfoType pickupDateInfo = new PickupDateInfoType();
    27. pickupDateInfo.CloseTime = "2000";
    28. pickupDateInfo.PickupDate = "20091230";
    29. pickupDateInfo.ReadyTime = "0900";
    30. pickupCreationRequest.PickupDateInfo = pickupDateInfo;
    31. PickupAddressType pickupAddress = new PickupAddressType();
    32. String[] addressLine = { "315 Saddle Bridge Drive" };
    33. pickupAddress.AddressLine = addressLine;
    34. pickupAddress.City = "Allendale";
    35. pickupAddress.CompanyName = "Pickup Proxy";
    36. pickupAddress.ContactName = "Pickup Proxy";
    37. pickupAddress.CountryCode = "US";
    38. pickupAddress.Floor = "2";
    39. pickupAddress.StateProvince = "NJ";
    40. PhoneType phoneType = new PhoneType();
    41. phoneType.Extension = "911";
    42. phoneType.Number = "6785851399";
    43. pickupAddress.Phone = phoneType;
    44. pickupAddress.PostalCode = "07401";
    45. pickupAddress.PickupPoint = "Lobby";
    46. pickupAddress.ResidentialIndicator = "Y";
    47. PickupCreationRequest.PickupAddress = pickupAddress;
    48. pickupCreationRequest.AlternateAddressIndicator = "N";
    49. PickupPieceType[] pickupPiece = new PickupPieceType[1];
    50. PickupPieceType pickupType = new PickupPieceType();
    51. pickupType.ContainerCode = "01";
    52. pickupType.DestinationCountryCode = "DE";
    53. pickupType.Quantity = "27";
    54. pickupType.ServiceCode = "002";
    55. pickupPiece[0] = pickupType;
    56. pickupCreationRequest.PickupPiece = pickupPiece;
    57. WeightType totalWeight = new WeightType();
    58. totalWeight.UnitOfMeasurement = "KGS";totalWeight.Weight = "2.0";
    59. pickupCreationRequest.TotalWeight = totalWeight;
    60. pickupCreationRequest.OverweightIndicator = "N";
    61. //String[] returnTrackingNumber = { "Your return tracking number 1", "Your return tracking number 2", "Your return tracking number 3" };
    62. //pickupCreationRequest.ReturnTrackingNumber = returnTrackingNumber;
    63. pickupCreationRequest.PaymentMethod = "01";
    64. pickupCreationRequest.SpecialInstruction = ".Net Sample code for Pickup Client";
    65. //CSRType CSR = new CSRType();
    66. //CSR.ProfileCountryCode = "US";
    67. //CSR.ProfileId = "CSR profile id";
    68. //pickupCreationRequest.CSR = CSR;
    69. UPSSecurity upss = new UPSSecurity();
    70. UPSSecurityServiceAccessToken upssSvcAccessToken = new UPSSecurityServiceAccessToken();
    71. upssSvcAccessToken.AccessLicenseNumber = "**********";
    72. upss.ServiceAccessToken = upssSvcAccessToken;
    73. UPSSecurityUsernameToken upssUsrNameToken = new UPSSecurityUsernameToken();
    74. upssUsrNameToken.Username = "*****";
    75. upssUsrNameToken.Password = "*******";
    76. upss.UsernameToken = upssUsrNameToken;
    77. pickupService.UPSSecurityValue = upss;
    78. System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
    79. Console.WriteLine(pickupCreationRequest);
    80. PickupCreationResponse pickupCreationResponse = pickupService.ProcessPickupCreation(pickupCreationRequest);
    81. Console.WriteLine("The transaction was a " + pickupCreationResponse.Response.ResponseStatus.Description);
    82. Console.WriteLine("The Pickup Request Confirmation Number is : " + pickupCreationResponse.PRN);Console.ReadKey();
    83. }
    84. catch (System.Web.Services.Protocols.SoapException ex)
    85. {
    86. Console.WriteLine("");Console.WriteLine("---------Pickup Web Service returns error----------------");
    87. Console.WriteLine("---------\"Hard\" is user error \"Transient\" is system error----------------");
    88. Console.WriteLine("SoapException Message= " + ex.Message);
    89. Console.WriteLine("");Console.WriteLine("SoapException Category:Code:Message= " + ex.Detail.LastChild.InnerText);
    90. Console.WriteLine("");Console.WriteLine("SoapException XML String for all= " + ex.Detail.LastChild.OuterXml);
    91. Console.WriteLine("");Console.WriteLine("SoapException StackTrace= " + ex.StackTrace);
    92. Console.WriteLine("-------------------------");Console.WriteLine("");
    93. }
    94. catch (System.ServiceModel.CommunicationException ex)
    95. {
    96. Console.WriteLine("");
    97. Console.WriteLine("--------------------");
    98. Console.WriteLine("CommunicationException= " + ex.Message);
    99. Console.WriteLine("CommunicationException-StackTrace= " + ex.StackTrace);
    100. Console.WriteLine("-------------------------");Console.WriteLine("");
    101. }
    102. catch (Exception ex)
    103. {
    104. Console.WriteLine("");
    105. Console.WriteLine("-------------------------");
    106. Console.WriteLine(" General Exception= " + ex.Message);
    107. Console.WriteLine(" General Exception-StackTrace= " + ex.StackTrace);
    108. Console.WriteLine("-------------------------");
    109. }
    110. finally
    111. {
    112. Console.ReadKey();
    113. }
    114. }
    115. }
    116. }

    Und den ersten teil der reference
    Spoiler anzeigen

    Quellcode

    1. [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.1433")][System.Diagnostics.DebuggerStepThroughAttribute()]
    2. [System.ComponentModel.DesignerCategoryAttribute("code")][System.Web.Services.WebServiceBindingAttribute(Name="PickupBinding", Namespace="http://www.ups.com/WSDL/XOLTWS/Pickup/v1.1")]public partial class PickupService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    3. private UPSSecurity uPSSecurityValueField;
    4. private System.Threading.SendOrPostCallback ProcessPickupCreationOperationCompleted;
    5. private System.Threading.SendOrPostCallback ProcessPickupRateOperationCompleted;
    6. private System.Threading.SendOrPostCallback ProcessPickupCancelOperationCompleted;
    7. private System.Threading.SendOrPostCallback ProcessPickupPendingStatusOperationCompleted;
    8. private bool useDefaultCredentialsSetExplicitly;
    9. /// <remarks/>public PickupService() {
    10. this.Url = global::PickupWSSample.Properties.Settings.Default.PickupWSSample_PickupWebReference_PickupService;
    11. if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
    12. this.UseDefaultCredentials = true;
    13. this.useDefaultCredentialsSetExplicitly = false;
    14. }else {this.useDefaultCredentialsSetExplicitly = true;
    15. }
    16. }
    17. public UPSSecurity UPSSecurityValue {
    18. get {return this.uPSSecurityValueField;
    19. }set {this.uPSSecurityValueField = value;
    20. }
    21. }


    Gruß Tkrox

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „iTkrox“ () aus folgendem Grund: sry wegen einrückung habs versucht bisl händisch zu schieben die Formatierung aus dem Studio übernimmt der irgendwie nicht

    Formatier mal bitte den Code so, dass man ihn lesen kann,
    z.B. nach jedem ";" eine neue Zeile,
    einrücken usw.
    Das Studio übernimmt das Einrücken für Dich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Kann es sein, dass die Namespaces Deines Projekts und des generierten Projekts disjunkt sind?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke ersteinmal Rod hab nachgeschaut die Namespaces pasten.

    konte das Problem leider nicht lösen werds jetzt einfach mal in C# machn dort tritt dieser fehler komischerweise nicht auf und ich hab die fehlende Klasse.

    Gruß iTkrox