OOP curl class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer

Dit ga je doen Binnen het team bouw je aan een applicatie met andere .Net Developers, testers een Product Owner en een Business Analyst. Met het team wordt de backlog besproken. In overleg claim jij jouw deel en zorgt ervoor dat onderhoud en innovatie wordt gerealiseerd. Het project dat momenteel draait is het opgraden van de omgeving. Doorontwikkelen van de huidige applicatie; Overleggen met teamleden om de backlog te verdelen; Onderhouden van de huidige omgeving; Sparren met de business en het ophalen van nieuwe requirements. Hier ga je werken De organisatie is een van de grootste landelijke aanbieder van diverse

Bekijk vacature »

PHP Developer

Dit ga je doen Ontwikkelen, implementeren en testen van PHP-oplossingen en Apps voor klanten en bedrijfsprocessen; Opstellen van requirements en uitwerken van de oplossingen; Testen van software en borgen van een soepele overdracht, inclusief documentatie; Proactief adviseren vanuit eigen expertisegebied over ontwikkelingen en verbeterpunten in technische toepassingen en processen binnen de organisatie. Hier ga je werken De organisatie is een ambitieuze en vooruitstrevende speler in de markt in de regio Rotterdam. Ze zijn de snelst groeiende in hun branche. Met een excellent aanbod en service willen zij de beste keuze zijn voor hun bestaande en nieuwe klanten. Dit alles doen

Bekijk vacature »

Back-end developer (Magento2)

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

Front end developer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers met passie voor hun vak. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van ontwerp en ontwikkeling zullen samenkomen in een proof of concept. Nadat is vastgesteld dat de oplossing voldoet aan de belangrijkste behoeftes worden producten of services gevalideerd door middel van korte iteraties. Hiermee zorgen ze ervoor dat het werk voldoet aan de technische vereisten en gebruikersbehoefte. Door het inzetten van de nieuwste technologieën die toekomstbestendig zijn weten ze klanten omver te blazen. Ook geven en organiseren ze veel

Bekijk vacature »

VB.NET developer

Functie Het development team waar jij in terecht komt bestaat uit twee ervaren software developers. De directeur/eigenaar is tevens één van deze developers. Jij werkt direct samen met jouw werkgever en kan dan ook veel kennis en ervaring bij dit bedrijf op doen. Als team zijn jullie verantwoordelijk voor de kantoorapplicatie die deze organisatie aanbied in een niche markt. Het team is op dit moment actief bezig met een migratie waarbij het eindstation eindigt in een C# .NET omgeving. Echter is een deel van de software al geschreven in C# .NET. Hierbij is gebruik gemaakt van C# .NET, CSS, HTML,

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Hands-on Solution Architect / Software Architect (

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Solution Architect / Software Architect op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je werkt samen met gedreven DevOps teams, bestaande uit frontend, backend en middleware developers, testers, UX-designers. Samen met de teams ben je continu op zoek naar de beste oplossingen voor onze klanten. Als Solution Architect onderzoek

Bekijk vacature »

Frontend Developer - Leeuwarden

Frontend Developer – Leeuwarden Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider

Bekijk vacature »

Front-end Developer

Dit ga je doen Doorontwikkelen van software; Ontwikkelen en testen van nieuwe functionaliteiten; Implementaties van nieuwe functionaliteiten en updates; Verzorgen van technische migraties naar nieuwe frameworks; Verwerken van incidenten. Hier ga je werken Onze klant, gevestigd in de regio Amsterdam, draagt bij aan het verbeteren van de veiligheid en efficiëntie van de Nederlandse infrastructuur door het ontwikkelen van afgemeten software oplossingen. Zo passen zij location intelligence toe om onderhoud en reparaties efficiënt te laten verlopen. Verder zorgen deze systemen dat incidenten zo snel mogelijk worden opgelost. Als Front-end Developer ben jij samen met je team betrokken met het (door)ontwikkelen van

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »

Frontend Developer

Functieomschrijving Voor de NIPV zijn wij opzoek naar een Frontend Developer. Als Frontend Developer ga jij aan de slag om dashboards te bouwen vanuit het datawarehouse. Dit stelt NIPV in staat om snel en eenvoudig bij correcte bedrijfsvoeringsinformatie te kunnen. Je ontwikkelt dashboards in PowerBI, publiceert en onderhoud die, verzameld en verwerkt feedback in overleg met het ontwikkelteam. Naast dashboards ontwikkel en onderhoud je een datamodel in Excel waarmee adviseurs, controllers en analisten in staat worden gesteld om de gegevens uit de dashboards te raadplegen en anders te filteren of bepaalde gegevens nader te verfijnen, zodat verdiepende vragen kunnen worden

Bekijk vacature »

C# .NET Software Ontwikkelaar

Functie omschrijving Gezocht: Software Developer C# .NET voor een dynamische organisatie! Ben je onlangs afgestudeerd of ben je toe aan de volgende stap in je professionele carrière? Lees dan verder! We zijn momenteel op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die onze eindklant in de regio Arnhem kan versterken. In deze functie werk je aan verschillende projecten en bezoek je vaak klanten. Je kunt een rol verwachten met veel uitdaging, diversiteit en verantwoordelijkheid. Bedrijfsprofiel Binnen welke organisatie ga je aan de slag? Je gaat werken bij een organisatie die zich specialiseert in het

Bekijk vacature »

PHP developer (Laravel, Docker, Gitlab-CI)

Functie Het IT-team bestaat momenteel uit 4 ontwikkelaars. Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. Een groot deel van de systemen is gebouwd met behulp van het Laravel framework en PHP (minimaal 7.2), Docker voor lokaab gebruik en Gitlab-CI voor het deployen

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »
Jorn Reed

Jorn Reed

19/10/2021 12:00:09
Quote Anchor link
Hoi iedereen,
Ik ben laatst begonnen met voor het eerst curl te gebruiken in PHP.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$headers = [
                "Content-Type: application/json",
                "Accept: application/json",
                "X-API-TOKEN: ".$token,
                "Connection: keep-alive",
            ];
            
            $body = [
                'FirstName'             => $result['inputs']['fname'],
                'MiddleName'            => $result['inputs']['prefix'],
                'LastName'                 => $result['inputs']['lname'],
                'Email'                    => $result['inputs']['email'],
                'PhonePrivate'            => $result['inputs']['phone'],
                'Gender'                => $result['inputs']['sex'],
                'Zipcode'                => $result['inputs']['zipcode'],
                'City'                    => $result['inputs']['place'],
                'Address'                => $result['inputs']['street'],
                'HouseNumber'            => $result['inputs']['housenumber'],
                'HouseNumberExtension'     => $result['inputs']['addition'],
                'BirthDate'                => $result['inputs']['birthdate'],
                'Language'                => $result['inputs']['language'],
            ];
                
            $curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL             => 'https://www.sportivity.com/sportivity-api/Customers',
                CURLOPT_RETURNTRANSFER     => true, //Return output instead of printing it.
                CURLOPT_HTTPHEADER        => $headers,
                CURLOPT_POST             => true,
                CURLOPT_POSTFIELDS         => json_encode($body, JSON_FORCE_OBJECT),
                CURLOPT_SSL_VERIFYPEER     => false,
                CURLOPT_SSl_VERIFYHOST     => false,)
            );
            
            $result['response'] = curl_exec($curl);
            $result['errors'] = [];
             curl_close($curl);
            echo json_encode($result['response']);


Deze code word geactiveerd op het moment dat alle formulier velden correct zijn ingevuld.
Als response krijg ik de input velden terug inclusief een customer_id. wat goed is.

Ik vond dit alleen slordig en probeerde het in een class te maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
class Api {
    protected $base_url = 'https://www.sportivity.com/sportivity-api';
    protected $token;
    
    public function __construct($token){
        $this->token = $token;
    }

    
    protected function getHeaders(){
        return [
            "Content-Type: application/json",
            "Accept: application/json",
            "X-API-TOKEN: ".$this->token,
            "Connection: keep-alive",
        ];
    }

    
    public function prepareApi($url){
        $curl = curl_init();
        
        curl_setopt($curl, CURLOPT_URL, $this->base_url.$url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $this->getHeaders());
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        
        $response = curl_exec($curl);
        curl_close($curl);
        
        return json_decode($response);
    }

    
    public function sendPostRequest($url, $body)
    {

        return $this->postRequest($url, $body);
    }


    
    private function postRequest($url, $body){
        $curl = curl_init;
        
        curl_setopt_array($curl, $this->getCurlPostOptions($url, $body));
        $response = curl_exec($curl);
        curl_close($curl);
        return json_encode($response);
    }

    
    private function getCurlPostOptions($url, $body){
        return [
            CURLOPT_URL             => $this->base_url.$url,
            CURLOPT_RETURNTRANSFER     => true, //Return output instead of printing it.
            CURLOPT_HTTPHEADER        => $this->getHeaders(),
            CURLOPT_POST             => true,
            CURLOPT_POSTFIELDS         => json_encode($body, JSON_FORCE_OBJECT),
            CURLOPT_SSL_VERIFYPEER     => false,
            CURLOPT_SSl_VERIFYHOST     => false,
            
        ];
    }

    
    public function getLocations(){
        return $this->prepareApi('/Locations');
    }
    
    
    public function getSubscriptions(){
        return $this->prepareApi('/MembershipDefinition');
    }
}


// $api = new Api();
// $test = $api->getLocations();
// var_dump($test->LocationResources);

?>

Vervolgens probeer ik de data dus zo op te halen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$api = new Api($token);
$result['response'] = $api->sendPostRequest('/Customers', $body);

Helaas krijg ik een response: "null" terug en weet ik niet waar dat aan ligt.

Toevoeging op 19/10/2021 12:04:11:

Vervolgens doe ik eigenlijk nog

echo $result;

wat dus in jquery met een ajax request word opgehaald en JSON.parse() op het result
 
PHP hulp

PHP hulp

19/04/2024 16:24:35
 
Ward van der Put
Moderator

Ward van der Put

19/10/2021 12:27:55
Quote Anchor link
Ik zie twee keer een curl_close(): die in prepareApi() sluit waarschijnlijk vroegtijdig de verbinding.
 
Jorn Reed

Jorn Reed

19/10/2021 12:34:38
Quote Anchor link
Ward van der Put op 19/10/2021 12:27:55:
Ik zie twee keer een curl_close(): die in prepareApi() sluit waarschijnlijk vroegtijdig de verbinding.


PrepareApi() is een oudere functie, die gebruik ik om alle subscriptions te tonen, kan het zo zijn dat hij vanwege de zelfde variabel naam de verbinding al sluit voordat ik die post request doe? Want in die post request open ik de verbinding bewijze van opnieuw.


Toevoeging op 19/10/2021 12:38:43:

Ward van der Put op 19/10/2021 12:27:55:
Ik zie twee keer een curl_close(): die in prepareApi() sluit waarschijnlijk vroegtijdig de verbinding.


ik had even de curl_close weggehaald, maar dat maakt geen verschil. Als ik het object in de console.log bekijk in jquery dan zie ik dat 'response' ="null"
 
Ozzie PHP

Ozzie PHP

19/10/2021 12:50:16
Quote Anchor link
$test->LocationResources

Waar komt die LocationResources vandaan?
 
Jorn Reed

Jorn Reed

19/10/2021 12:53:34
Quote Anchor link
Ozzie PHP op 19/10/2021 12:50:16:
$test->LocationResources

Waar komt die LocationResources vandaan?


Oh let maar niet op die call hoor. In ieder geval als je de locations ophaalde dan zaten ze in de ->locationResources. Vandaar dat ik dat een keer dumpte

Toevoeging op 19/10/2021 14:01:09:

stom foutje van mij. Ik vergat bij curl_init de () haha

Toevoeging op 19/10/2021 16:22:16:

Ik loop alleen tegen een ander probleem aan. Zodra ik de Post request maak, dan komt het in dit object
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$result['response'] = $call->sendPostRequest('/Customers', $body);

Dit object wordt vervolgens ge-echoed in een json_encode, en in de front end met jquery opgehaald. Het toont alle waardes die naar de API zijn gestuurd + een aangemaakt CustomerID. Alleen krijg ik het niet voor elkaar om het CustomerId in de PHP goed te ontvangen, ik heb die namelijk nodig voor een 2e api call. Het werkt allemaal een beetje gek omdat ik steeds met jquery een ajax call maak naar een php functie die met een WordPress ajax action word aangeroepen. Ik weet niet of iemand daar ervaring mee heeft?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.