PhoneGap & curl

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

PhoneGap & curl

Beitrag von Falko »

Hier wurde öffter's von PhoneGap geschrieben.

in der Doc dazu steht ein Beispiel, wie man Apps dort mithilfe
von curl löschen kann. Ich habe im englischen Forum sowie hier
einige Beispiele zu der curlLIB gesehen, aber irgendwie kriege ich
das nicht hin eine APP über DELETE dort zu löschen.

Hier mal der Link zur API - DOC.

http://docs.build.phonegap.com/en_US/3. ... v1_apps_id

Ich würde mich sehr über eure Hilfe freuen, wie man diesen Satz mit der curlLIB einsetzen muss, damit das funktioniert.

Vielleicht kennt sich hier jemand speziell mit PhoneGap aus und hat dazu einen passenden Code.
Als Versuch, woran ich gescheitert bin, habe ich hier einen zusammengesetzten Versuchscode vergebens probiert.

Code: Alles auswählen

;================================================================
; Project  PhoneGap in Verbindung mit LibCurl Lib. aus den englischen Forum.
; Title     Delete App from PhoneGap.com
; Author    Falko
; Date      23.03.2014
; Notes     Use curl-lib 
;================================================================

XIncludeFile "RW_LibCurl_Res.pb"
XIncludeFile "RW_LibCurl_Inc.pb"
Benutzername.s= "EMail"
Passwort.s= "Kennwort"

URL.s=" -u "+Benutzername+":"+Passwort+" -X DELETE https://build.phonegap.com/api/v1/apps/"+AppID
;URL.s = "https://build.phonegap.com/api/v1"; Dieses funktioniert

curl  = curl_easy_init()
If curl
  
 Debug curl_easy_setopt(curl, #CURLOPT_URL, @URL); Fehlercode 6 bei ...perform
 ; Debug curl_easy_setopt(curl, #CURLOPT_HTTPPOST, @URL); Fehlercode 3 bei ...perform
  Debug curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYPEER, 0)
  Debug curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYHOST, 0)
  Debug curl_easy_setopt(curl, #CURLOPT_HEADER, 0); @"")
  Debug curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @RW_LibCurl_WriteFunction())
  res = curl_easy_perform(curl)
  Debug res
  Debug "----"
  Debug  RW_LibCurl_GetData
  Debug "----"
  Debug curl_easy_cleanup(curl)
EndIf
Grüße, Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Re: PhoneGap & curl

Beitrag von Rebon »

Ist es eigentlich Absicht, dass du Benutzername und Passwort jeweils einen String zuweist, aber in dem String URL ebenfalls die Namen der Variablen nur als Text übernimmst?

Und mit curl kenne ich mich überhaupt nicht aus, ich hatte nur eben gerade gelesen, dass es zu Problemen mit HTTPS kommen könnte. Wobei ich dies wie gesagt nicht im Ansatz beurteilen kann, ob dies auch auf #CURLOPT_HTTPPOST zutrifft.

http://forums.purebasic.com/german/view ... 5da1d86113
PB 4.00 | Windows XP Home SP3
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: PhoneGap & curl

Beitrag von Falko »

Sorry, das hatte ich in der späten Nacht vergessen anzupassen.
Jetzt müsste das richtig sein.

Ich vermute, das es an libCurl liegt, das man das so nicht eingeben kann.
Fehlermeldung bei res ist hierbei 6, was bedeutet, das die Seite nicht aufgelöst werden kann.

Ändere ich die URL ohne Passwort und Benutzername, so wie hier,
URL.s = "https://build.phonegap.com/api/v1"; Dieses funktioniert
Wird folgende Augabe angezeigt, das die Logindaten fehlen:
https://build.phonegap.com/api/v1

...

----
{"error":"You need to sign in or sign up before continuing."}
----
0
Also das sieht schonmal gut aus. Also hat das wohl mit den Logindaten zu tun. Ich habe
zwar noch ein anderes Beispiel mit Curl gesehen, wo nacheinander Seite und Kennwort&Passwort
eingegeben werden, aber weiß nicht, wie das mit dem Delete erweitert werden müsste. :(

#CURLOPT_HTTPPOST hatte ich auch ausprobiert, wobei hier der fehler 3 bei rauskommt.
was foglendes bedeutet (http://curl.haxx.se/libcurl/c/libcurl-errors.html):
CURLE_URL_MALFORMAT (3)
The URL was not properly formatted.
[Edit] Wenn ich folgenden Code ausführe, wird mir mit Login alles korrekt ausgeführt.
Nur so, wie ich laut PhoneGap - API den obigen Code in CURL ausführen soll, funktioniert nicht, weil immer Fehler 3.
Also irgendwas fehlt noch.

Hier der folgende Code, der mit reinen Login auf die HTTPS... funktioniert:

Code: Alles auswählen

;================================================================
; Project   Login bei PhoneGap.com unter mithilfe von LibCurl
; Title     Delete App from PhoneGap.com
; Author    Falko
; Date      24.03.2014
; Notes     Use curl-lib 
;================================================================

XIncludeFile "RW_LibCurl_Res.pb"
XIncludeFile "RW_LibCurl_Inc.pb"
Benutzername.s= "Dein Benutzername oder deine EMail"
Passwort.s= "Dein Kennwort"

UserPwd.s=Benutzername+":"+Passwort
URL.s = "https://build.phonegap.com/api/v1"

curl  = curl_easy_init()
If curl
  Debug curl_easy_setopt(curl, #CURLOPT_URL, @URL)
  Debug curl_easy_setopt(curl, #CURLOPT_USERPWD, @UserPwd)
  Debug curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYPEER, 0)
  Debug curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYHOST, 0)
  Debug curl_easy_setopt(curl, #CURLOPT_HEADER, 0); @"")
  Debug curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @RW_LibCurl_WriteFunction())
  res = curl_easy_perform(curl)
  Debug res
  Debug "----"
  MessageRequester("Ausgabe", RW_LibCurl_GetData())
  Debug "----"
  Debug curl_easy_cleanup(curl)
EndIf
Vielleicht habt ihr ja noch einen super Tipp für mich, wie ich diese Zeile, aber mit Kennwort umsetzen muss:
[/Edit]
Gruß,
Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: PhoneGap & curl

Beitrag von Falko »

Da hier sonst keiner hierzu eine Antwort parat hat, habe ich
endlich die passende Lösung selber herausgefunden :mrgreen:

Praktisch wäre PhoneGap für den Spiderbasic Einsatz. Ich selber benutze
NSB/AppStudio welches Basic-Code bzw. Java nach PhoneGap hochlädt um
eine App generieren zu lassen. Da man beim Free-Account nur eine App
generieren kann, muss man die aktuelle vorher löschen. Es ist aber umständlich
jedesmal sich einzuloggen und dort die App mittels Delete-Button zu entfernen.
Darum habe ich mithilfe der LibCurl eine Möglichkeit gesucht dieses zu vereinfachen.
Falls jemand sowas gebrauchen kann, stelle ich dieses hier frei zur Verfügung :).

Code: Alles auswählen

;================================================================
; Project   Login und Delete App bei PhoneGap.com unter mithilfe von LibCurl
; Title     Delete App from PhoneGap.com
; Author    Falko
; Date      24.03.2014
; Notes     Use curl-lib 
;================================================================

XIncludeFile "RW_LibCurl_Res.pb"
XIncludeFile "RW_LibCurl_Inc.pb"

Benutzername.s= "Dein Benutzername"; Emailadresse
Passwort.s= "Dein Passwort"
AppID.s=""    ; Falls ihr sehen wollt, welche AppID online ist, einfach den Leerstring so belassen 
;              und die komplette Zeile ...@"DELETE"... auskommentieren.          
UserPwd.s=Benutzername+":"+Passwort

URL.s = "https://build.phonegap.com/api/v1/apps/"+AppID.s 

curl  = curl_easy_init()
If curl
  Debug curl_easy_setopt(curl, #CURLOPT_URL, @URL)
  Debug curl_easy_setopt(curl, #CURLOPT_CUSTOMREQUEST, @"DELETE")
  Debug curl_easy_setopt(curl, #CURLOPT_USERPWD, @UserPwd)
  Debug curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYPEER, 0)
  Debug curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYHOST, 0)
  Debug curl_easy_setopt(curl, #CURLOPT_HEADER, 0); @"")
  Debug curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @RW_LibCurl_WriteFunction())
  res = curl_easy_perform(curl)
  Debug res
  
  Debug "----"
  MessageRequester("Ausgabe", RW_LibCurl_GetData())
  Debug RW_LibCurl_GetData()
  Debug "----"
  
  Debug curl_easy_cleanup(curl)
EndIf
MfG, Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: PhoneGap & curl

Beitrag von Falko »

Nun habe ich ein weiteres Problem mt Purebasic 5.22 LTS X86.
Ich kann zwar mit eingeschalteten Debugger compilieren und ohne irgendein Kennwort und Benutzernamen
bekomme ich in der Messagebox sowie im Debugger eine html-Textausgabe angezeigt.
sobad ich aber eine Exe erzeuge, oder auch ohne Debuger compiliere, wird nichts mehr angezeigt.

Könnte das ein Bug sein, der mit dem Debuger zu tun hat?

Hier das komplette Paket mit der lib curl und meinem PB-Code sowie den angepassten Wrapper zu PB 5.22LTS X86.

Bei X64 bekomme ich Polink-Errors, was vermutlich an der dll liegen müsste.

http://www.youtech.de/Program/PhoneGap.zip

Ich hoffe hier kann mir jemand einen Rat geben, woran das liegen kann :oops:

Mit freundlichen Grüßen,
Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: PhoneGap & curl

Beitrag von Andreas21 »

Den Code so benutzt?

Code: Alles auswählen

;================================================================
; Project   Login und Delete App bei PhoneGap.com unter mithilfe von LibCurl
; Title     Delete App from PhoneGap.com
; Author    Falko
; Date      24.03.2014
; Notes     Use curl-lib 
;================================================================

XIncludeFile "RW_LibCurl_Res.pb"
XIncludeFile "RW_LibCurl_Inc.pb"

Benutzername.s= "Dein Benutzername"; Emailadresse
Passwort.s= "Dein Passwort"
AppID.s=""    ; Falls ihr sehen wollt, welche AppID online ist, einfach den Leerstring so belassen 
;              und die komplette Zeile ...@"DELETE"... auskommentieren.          
UserPwd.s=Benutzername+":"+Passwort

URL.s = "https://build.phonegap.com/api/v1/apps/"+AppID.s 

curl  = curl_easy_init()
If curl
  Debug curl_easy_setopt(curl, #CURLOPT_URL, @URL)
  Debug curl_easy_setopt(curl, #CURLOPT_CUSTOMREQUEST, @"DELETE")
  Debug curl_easy_setopt(curl, #CURLOPT_USERPWD, @UserPwd)
  Debug curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYPEER, 0)
  Debug curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYHOST, 0)
  Debug curl_easy_setopt(curl, #CURLOPT_HEADER, 0); @"")
  Debug curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @RW_LibCurl_WriteFunction())
  res = curl_easy_perform(curl)
  Debug res
  
  Debug "----"
  MessageRequester("Ausgabe", RW_LibCurl_GetData())
  Debug RW_LibCurl_GetData()
  Debug "----"
  
  Debug curl_easy_cleanup(curl)
EndIf
Wenn ja werden doch Zeilen mit Debug beim erstellen ohne Debugger ausgeschlossen.

Die werden nicht ausgeführt dann.
Das würde bleiben:

Code: Alles auswählen

;================================================================
; Project   Login und Delete App bei PhoneGap.com unter mithilfe von LibCurl
; Title     Delete App from PhoneGap.com
; Author    Falko
; Date      24.03.2014
; Notes     Use curl-lib 
;================================================================

XIncludeFile "RW_LibCurl_Res.pb"
XIncludeFile "RW_LibCurl_Inc.pb"

Benutzername.s= "Dein Benutzername"; Emailadresse
Passwort.s= "Dein Passwort"
AppID.s=""    ; Falls ihr sehen wollt, welche AppID online ist, einfach den Leerstring so belassen 
;              und die komplette Zeile ...@"DELETE"... auskommentieren.          
UserPwd.s=Benutzername+":"+Passwort

URL.s = "https://build.phonegap.com/api/v1/apps/"+AppID.s 

curl  = curl_easy_init()
If curl
  res = curl_easy_perform(curl)
  
  MessageRequester("Ausgabe", RW_LibCurl_GetData())
  
EndIf
Es hört sich nur stark danach an^^
Da er im Debug Mode geht aber ohne nicht.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: PhoneGap & curl

Beitrag von Falko »

Jep, und Danke Andreas21.
Da haben die mit dem Debugger wohl einen riesen Bug wieder eingebaut.
Wenn ich die stehen lasse, werden beim Exe-Compilat die kompletten Zeilen wohl
ausgelassen. Da deine beiden Beispiele auch nicht funktionierten, kam mir dank Deinen Tipp,
nun nur die debug-Befehle herauszunehmen. Und siehe da es funst endlich :).

Ich werde mein Beispiel nochmal alle "debug" entfernen und als Zip wieder hochladen.

Hier das laufende Beispiel nochmal, welches nun auch als Exe compiliert, funktioniert.

Code: Alles auswählen

;================================================================
; Project   Login und Delete App bei PhoneGap.com unter mithilfe von LibCurl
; Title     Delete App from PhoneGap.com
; Author    Falko
; Date      24.03.2014
; Notes     Use curl-lib
;================================================================

XIncludeFile "RW_LibCurl_Res.pb"
XIncludeFile "RW_LibCurl_Inc.pb"

Benutzername.s= "Dein Benutzername"; Emailadresse
Passwort.s= "Dein Passwort"
AppID.s=""    ; Falls ihr sehen wollt, welche AppID online ist, einfach den Leerstring so belassen
;              und die komplette Zeile ...@"DELETE"... auskommentieren.         
UserPwd.s=Benutzername+":"+Passwort

URL.s = "https://build.phonegap.com/api/v1/apps/"+AppID.s

curl  = curl_easy_init()
If curl
  curl_easy_setopt(curl, #CURLOPT_URL, @URL)
  curl_easy_setopt(curl, #CURLOPT_CUSTOMREQUEST, @"DELETE")
  curl_easy_setopt(curl, #CURLOPT_USERPWD, @UserPwd)
  curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYPEER, 0)
  curl_easy_setopt(curl, #CURLOPT_SSL_VERIFYHOST, 0)
  curl_easy_setopt(curl, #CURLOPT_HEADER, 0); @"")
  curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @RW_LibCurl_WriteFunction())
  res = curl_easy_perform(curl)
  
 
    MessageRequester("Ausgabe",RW_LibCurl_GetData())
    
    
  curl_easy_cleanup(curl)
EndIf
Ich habs mal im englischen Forum als Bug gemeldet und hoffe die verstehen mein denglisch :)
http://www.purebasic.fr/english/viewtop ... =4&t=58854

Gruß,
Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: PhoneGap & curl

Beitrag von ts-soft »

Es war schon immer so, das Debug-Zeilen nicht mitkompiliert werden.
You made my day :lol:

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: PhoneGap & curl

Beitrag von Falko »

Dann habe ich ein PB-Leben lang das nicht gemerkt und nun
weiß ich es :lol:

Wobei nur ein Entfernen des "debug" bei solchen Zeilen hätte reichen können.
Geht anscheinend nicht so einfach, da manche Debugausgaben wie Debug ----- oder so,
dann als Fehler im Code interpretiert werden :bounce:
@ts-soft . Ich werde es mir zum Herzen nehmen :lol:
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten