Es gibt ein nettes Projekt namens HTTPMiddleware , das nützlich sein kann, es ist nur ein Middleware-Framework, aber es funktioniert gut.
Hier ist ein Codebeispiel:
%Vor%Hier ist die offizielle Seite . Sie können auch einen JSON Parser in den entsprechenden Quellen finden nützlich für allgemeine Anfragen. Die Installation erfordert nur den uri_parser .
Wenn man bedenkt, dass sich Swift unter Linux in ständiger Entwicklung befindet, ist der beste Ansatz meiner Meinung nach, keine ernsthafte Entwicklung zu betreiben, bis die Situation stabiler ist. Selbst wenn Sie das Hindernis überwinden, HTTP-Anfragen zu stellen, wird es wahrscheinlich andere unangenehme Überraschungen geben, da die Technologie unter Linux noch nicht ausgereift ist.
Wenn dies jedoch nur eine Frage der Neugier und des Lernens ist, hier ein paar Ideen, auch wenn ich sie nicht selbst ausprobiert habe:
Unabhängig davon, welche dieser Ansätze Sie verwenden, müssen Sie mit dem C-Code interagieren. Eine Möglichkeit besteht darin, Systemmodule zu verwenden, siehe Importieren eines Swift-Moduls mit a C-Bibliothek als möglicher Ausgangspunkt.
Betrachten Sie die folgende Lösung, die auf ccurl library basiert:
Ich habe es unter Ubuntu 14.04 gemacht
Swift 3.0 - neueste Entwicklungsversion: Ссылка
Folgendes Paket und Anweisungen funktionierten im Allgemeinen gut:
Um Kompilierungsfehler zu beheben, musste ich sots_curl.h
im CCurl-Paket ändern. Folgende Zeile wurde hinzugefügt:
Für das App-Building müssen Sie folgende Schritte im App-Ordner durchführen:
%Vor%Für die Ausführung der App müssen Sie den folgenden Befehl im App-Ordner ausführen:
%Vor%Ich hoffe, es hilft. Stellen Sie Fragen, falls vorhanden:)
Seit Mitte 2017 gibt es die IBM SwiftyRequest -Bibliothek, die sowohl auf Linux als auch auf iOS funktioniert. Ich habe es unter Linux versucht und scheint gut zu funktionieren.
Das Erstellen einer Anfrage sieht folgendermaßen aus (angepasst an ein Beispiel aus der Dokumentation):
%Vor% Wenn Sie JSON für die Antworten verwenden, kann es Ihnen sogar ein Objekt basierend auf einem von Ihnen bereitgestellten "Schema" erstellen (schauen Sie sich .responseObject
und JSONDecodable
im Tests für Beispiele).
Nicht eine vollständige Antwort, aber vielleicht nützlich für jemanden:
Ich brauchte nur NSData(contentsOfURL: NSURL)
, also schrieb ich einen Wrapper für KituraNet, der das mit einer Schließung macht. Ich überprüfe nur, ob Daten vorhanden sind und gebe das zurück.
Da NSURL
noch lange nicht vollständig implementiert ist, habe ich mich auch entschieden, die URL als String
zu übergeben.
Es ist kein Ersatz für NSURLRequest
, nur die gute alte Bequemlichkeit von NSData(contentsOfURL: NSURL)
Tags und Links linux swift httprequest