Question

I have been asked to replace a python program that logs into a website and download a text file with an FME solution. I was given the working python application and, using the HTTPCaller Transformer, along with the Creator Transformer.


Badge +5

Although the Python can connect with the information provide, the FME tries to connect but is not able to. This is simply downloading a text file from the site once the connection is made and storing the text file locally.

The goal is to modify the process that currently uses three software packages into one FME solution.

 

Details on the HTTPCaller in the attachment


14 replies

Userlevel 5
Badge +29

Not much we can tell from that screenshot, whats the error that you're getting? from both the log and the _response_body attribute

Userlevel 4
Badge +25

In addition to what @hkingsbury​ said: does the website you're calling require any kind of authentication?

Badge +5

Not much we can tell from that screenshot, whats the error that you're getting? from both the log and the _response_body attribute

Here are the errors I am getting. I can supply the complete Informational log if needed:

HTTPCaller_2 (HTTPFactory): HTTP/FTP transfer error: 'Couldn't connect to server'

HTTPCaller_2 (HTTPFactory): Please ensure that your network connection is properly set up

HTTPCaller_2 (HTTPFactory): No proxy settings have been entered. If you require a proxy to access external URLs, please ensure the appropriate information has been entered

 

I have been advised that the Python code that is being used is actually getting to the site and downloading the file. I can supply that as well if it helps.

 

Badge +5

In addition to what @hkingsbury​ said: does the website you're calling require any kind of authentication?

The developer of the Python has told me that no authentication is required, other than the information in the Python itself. I am a little hesitant to supply the actual Python in an open forum but will send a mock-up of the parameters if that will help?

Userlevel 4
Badge +25

Here are the errors I am getting. I can supply the complete Informational log if needed:

HTTPCaller_2 (HTTPFactory): HTTP/FTP transfer error: 'Couldn't connect to server'

HTTPCaller_2 (HTTPFactory): Please ensure that your network connection is properly set up

HTTPCaller_2 (HTTPFactory): No proxy settings have been entered. If you require a proxy to access external URLs, please ensure the appropriate information has been entered

 

I have been advised that the Python code that is being used is actually getting to the site and downloading the file. I can supply that as well if it helps.

 

The errors indicate FME can't connect to the server. So some questions come to mind:

 

  • Can you ping that server?
  • Do you need to use a proxy?
  • Is the python code able to get the data if you run it from the same machine (and user account) as FME?

 

Badge +5

Here are the errors I am getting. I can supply the complete Informational log if needed:

HTTPCaller_2 (HTTPFactory): HTTP/FTP transfer error: 'Couldn't connect to server'

HTTPCaller_2 (HTTPFactory): Please ensure that your network connection is properly set up

HTTPCaller_2 (HTTPFactory): No proxy settings have been entered. If you require a proxy to access external URLs, please ensure the appropriate information has been entered

 

I have been advised that the Python code that is being used is actually getting to the site and downloading the file. I can supply that as well if it helps.

 

I will try to ping the server, but the python developer advised that he was receiving the file, without needing a special account or anything done with a proxy. But I will try.

Badge +5

Here is the full Pyton code that is currently downloading the file (specific location info is replaced):

 

import requests

headers = {'PAYMENTS_DIRECTORY_ORG_ID':'099000099', 'EPAYMENTS_DIRECTORY_DOWNLOAD_CD':'9x99999abc-9999-9999xxx-a99999999999'}

directory = 'https://QQQ.org/PaymentsDirectory/directories/fedach?format=text'

r = requests.get(directory, headers = headers)

open("QQQ.txt","wb") .write(r.content)

 

Badge +5

I am using default values. I have tried modifying colons, and quotes but still getting the inability to connect

HTTPCallerSetup

Userlevel 4
Badge +25

I am using default values. I have tried modifying colons, and quotes but still getting the inability to connect

HTTPCallerSetup

Have you tried pinging the server? Does the Python work on the same machine/account as you're using FME on?

Badge +5

Have you tried pinging the server? Does the Python work on the same machine/account as you're using FME on?

I don't know the IPAddress. It is a government site. The guy running the Python downloaded the file earlier this morning. He advised that there is a limit of 5 downloads per day.

I could try to run the Python from my machine. Let me do that.

Userlevel 4
Badge +25

Have you tried pinging the server? Does the Python work on the same machine/account as you're using FME on?

You don't need to know the ip address to ping, you can use the url as well. If that doesn't work (i.e. if you don't get a response from the server) it most likely means your computer can't reach the server.

Badge +5

Have you tried pinging the server? Does the Python work on the same machine/account as you're using FME on?

Thanks. I had tried the url and it didn't work. I tried to run the Python from my PC and that timed out as well. I am going back to the Python programmer to see if i have to register myself or the machine on the site to reach it.

Badge +5

Have you tried pinging the server? Does the Python work on the same machine/account as you're using FME on?

I tried to ping with the url and got no response. I ran the Python script from my machine and that time out as well. I am going back to the Python programmer to see if I have to register myself or my machine on the website to allow downloads. That has not been mentioned so far but it might be the answer.

Badge +5

After all was said and done, and starting to doubt the local contact’s information, I contacted the vendor and learned that I was given the wrong login information locally.  Once I got the correct login information, the issue was resolved.

Reply