Problem with HTTPRIO

Posted on 2009-02-23
Last Modified: 2012-05-06
Dear All,

We have quite a pressing problem that I hope someone can help with.

We have been informed by our credit card company the the location of the server processing the cards is changing today, and we have a week to implement it. Nice eh? Unfortunately, the week becomes 2 days I have to have 3 days off at the end of this week that I cannot cancel.

We use the THTTPRIO component to access the gateway.

Previously, we had 2 URLS - where the WSDL lives:

So, using (for example) as the WSDL location, we can then access the service and port values and set them correctly.

I just assumed that we could simply switch the old live URL for the new live URL and so the same thing, select the service and port and away we go on the new server.

But, a nightmare situation has developed - whenever I try to use the new URL and select the service, I get an 'interface not supported' error.

The new URL is (and for the WSDLLocation).

When I look at the base URLs in the a browser, the pages are the same and the definition returned from the wsdl is virtually indentical and I the differences do not look like they should cause a problem.

Help! Could someone have a look and see if they get the same problem and see if there is anything we can do to solve this as they disable the old URL a week today which means our mail order system stops processing cards right then.

High points value for this one because of the obvious need to some expert help to get this solved ASAP

And probably important also is that I am using Delphi 2007 (probably important) and Vista (probably not, but just in case).


Question by:trevorb
    LVL 19

    Expert Comment

    I did a quick search, and found this pointer, maybe it helps:

    I've found that some unsupported features in remoted interfaces don't get
    flagged by the compiler, but it does that the interface can't be obtained
    from the invokeregistry.
    This leads to "interface not supported" at the client when the RIO component
    is cast to the interface.

    If that's the problem, try checking for the obvious - all methods must be
    There are others: indexede properties; indexed array properties;
    multidimensional arrays seem to cause a problem, too.

    Try cutting down on the exposed methods in the interface by commenting some
    out- you can do this, and the implementation file will still compile. And
    keep going until you find the problem.

    Author Comment

    Hi MerijnB,

    Thanks for the reply, really appreciate your quick help.

    Okay, I am going to be perfectly honest with you now..... I have no idea where to start to fix this, even looking at your solution above.

    I have worked in Delphi for many years, but this isn't my strong side by any means. Previously, I was given the URLs by the credit card company and they just worked, simple - no further changes needed. But now I am stuck. I have of course tried to contact them for help but they do not know Delphi and so I don't think I am getting any joy.

    Can you please give me some help on how I can start to fix this? I honestly have no idea. I am due into hospital on Wednesday for 3 days. So I have today and tomorrow to get this fixed. I am truly panicing.


    LVL 19

    Expert Comment

    > Okay, I am going to be perfectly honest with you now..

    Some honesty from my side: I don't have much experience with SOAP :x

    Let's see if we can get somewhere together.

    - I assume you get an exception, corrent?
    - If yes, at what point do you get it? At startup? When you call a certain method of the WSDL object?

    Author Comment

    Thanks again.

    No, not even as far as that, no exceptions etc - I'm not even compiling it before I get the error.

    I have stripped it right down to basics. I create a new application, add the HTTPRIO component from the Web services palette.

    Previously, I type in one of the 'good' WSDL location URLS into the WSDLLocation property. I then clicked the service property and it dropped down listing the gateway and then I was able to select the port.

    But, even on this stripped down example, if I enter the 'new' WSDL URL, the go to the service property, I get 'interface not supported'. That is it, no compile or anything.

    If you have a few seconds, please try it and you will see (hopefully) what it does.

    The problem is as far back as that.


    Author Comment

    I have now tried it on a clean install of D2009 also with all the patches and updates applied and I still get exactly the same problem.

    This was in the hope that it may possibly have been a bug in D2007 that has been fixed and I would be able to spend my convalesence porting this mail order sorftware to D2009 before the weekend is up.

    But even that is now out of the list of possibilities.

    Is there such a thing as ultra-panic?!

    LVL 19

    Accepted Solution

    So strange, while testing this it started working by itself. So I could reproduce and was trying to find the problem, and suddenly it just started working, I think they changed something server side.

    Can you try again? Please make sure you remove the THTTPRIO object and add it again, let me know.

    Author Closing Comment


    Yes! You are 100% correct, it is working. You cannot begin to believe how relieved I am on a scale of 1-100!!!!!!!!!!

    Top be honest, I am pretty angry too. I called the crdeit card acquier helpdesk back and said what has changed? And he looked at his logs and said they had tweaked the WSDL at 15:34 UK time as there had been some 'issues'. So I have wasted a day of this and the worry has been undescribable as you can probably imagine.

    Can I just say a huge THANK YOU to you, it's just nice to know that there are people out there who you can turn to when this kind of thing happens, even for just a reassuring voice and someone to share the problem with. And the reassurance that it wasn't just me going nutty.

    So you get the points just for that.

    Thanks again and best wishes,

    LVL 19

    Expert Comment

    Great it's now indeed working!

    Good luck with your hospital visit...

    Author Comment

    Thank you, appreciate your comments. That is the next thing to worry about! But think I was more worried about the credit card processing issue than the hospital visit..... ;-)

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    How to run any project with ease

    Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
    - Combine task lists, docs, spreadsheets, and chat in one
    - View and edit from mobile/offline
    - Cut down on emails

    The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
    Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
    Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
    Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

    779 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    16 Experts available now in Live!

    Get 1:1 Help Now