Avatar billede r3g1uz Nybegynder
26. januar 2011 - 17:27 Der er 7 kommentarer

PHP: data igennem API med basic authentication

Hej med jer,

Jeg er i gang med et mindre system, der gerne skal kunne hente data fra et andet system (på en anden server) igennem dette systems API.

Hvis jeg i en browser indtaster den URL, man skal bruge for at tilgå systemets API, kommer der en dialogboks frem, der spørger om username og password. Det er fordi det er beskyttet med HTTP basic authentication.
Det fungerer helt fint. Jeg kan bare logge ind med mit username og password, og så får jeg smidt data retur i XML format.

Det jeg gerne vil kunne er bare at hente dette data i XML format i mit system kodet i PHP. Dette kan jeg umiddelbart ikke finde ud af.

Håber nogen kan hjælpe med dette.

Spørg endelig, hvis der mangler oplysninger, eller kom gerne med forslag.

Hvis det skulle være nemmere at lave et Javascript, der kan håndtere problemet, så er det også fint med mig. Bare jeg kan afvikle det igennem mit system skrevet i PHP.

På forhånd tak for hjælp.
Avatar billede coderdk Praktikant
26. januar 2011 - 17:37 #1
Avatar billede coderdk Praktikant
26. januar 2011 - 17:40 #2
Du kan også bare bruge file_get_contents sådan:

$xml = file_get_contents( "http://bruger:kode@server.dk/sti/fil.php" );
Avatar billede coderdk Praktikant
26. januar 2011 - 17:40 #3
Hmm. Eksperten har fucket links op :P
Avatar billede r3g1uz Nybegynder
26. januar 2011 - 17:57 #4
Hej coderdk,

Tak for dine svar.

Har prøvet både med cURL og file_get_contents, og det virker ikke.

Når jeg bruger cURL får jeg bare et HTML-dokument retur, der er angiver: "The document can be found at [server.dk]", hvorfor [server.dk] er et link til den URL, jeg ønsker at hente data fra.
Avatar billede coderdk Praktikant
26. januar 2011 - 18:48 #5
Prøv at sætte CURLOPT_REFERER til en URL på sitet, eller samme URL som du henter, og sæt CURLOPT_USERAGENT til f.eks. "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"
Avatar billede coderdk Praktikant
26. januar 2011 - 18:48 #6
Og sæt CURLOPT_FOLLOWLOCATION til 1 :)
Avatar billede r3g1uz Nybegynder
26. januar 2011 - 19:00 #7
Hej igen,

Tak for dine forslag. Har netop prøvet disse - virker ikke.

Det underlige er, når jeg f.eks. bruger GoogleMaps API virker det fint for mig... Så måske er det noget ved det systems API, som jeg prøver at tilgå, der er noget galt med.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester