Ich versuche, den HTML-Code dieser Seite http://pastebin.com/raw/7y7MWssc mit C zu bekommen. Bisher versuche ich, Pastebin mit Sockets & Port 80 zu verbinden, und verwenden Sie dann eine HTTP-Anfrage, um HTML zu erhalten auf dieser Pastebin-Seite.C-Sprache, HTML-Quelle
weiß ich, was ich bisher wahrscheinlich weg ist, aber hier ist es:
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
int main()
{
/*Define socket variables */
char host[1024] = "pastebin.com";
char url[1024] = "/raw/7y7MWssc";
char request[2000];
struct hostent *server;
struct sockaddr_in serverAddr;
int portno = 80;
printf("Trying to get source of pastebin.com/raw/7y7MWssc ...\n");
/* Create socket */
int tcpSocket = socket(AF_INET, SOCK_STREAM, 0);
if(tcpSocket < 0) {
printf("ERROR opening socket\n");
} else {
printf("Socket opened successfully.\n");
}
server = gethostbyname(host);
serverAddr.sin_port = htons(portno);
if(connect(tcpSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)) < 0) {
printf("Can't connect\n");
} else {
printf("Connected successfully\n");
}
bzero(request, 2000);
sprintf(request, "Get %s HTTP/1.1\r\n Host: %s\r\n \r\n \r\n", url, host);
printf("\n%s", request);
if(send(tcpSocket, request, strlen(request), 0) < 0) {
printf("Error with send()");
} else {
printf("Successfully sent html fetch request");
}
printf("test\n");
}
Der obige Code Sinn zu einem gewissen Punkt gemacht, und jetzt verwirrt ich bin. Wie würde ich diese Webquelle von http://pastebin.com/raw/7y7MWssc bekommen?
1) entfernen Sie die zusätzlichen Leerzeichen am Anfang der Linien in der Anfrage, 2) Änderung zu holen , 3) empfange die Antwort und drucke es – immibis
@immibis getan, aber es gibt immer noch ein Problem, nachdem ich die Anfrage in Zeile 38 drucke, da die letzte Zeile, wo es "Test" druckt, nie ausgeführt wird – BotHam
Es wird "nie ausgeführt"? Also, dein Programm ist ... mit einem Fehler beenden? Hängend? Wenn es hängt, auf welcher Linie hängt es fest? Wenn es einen Fehler gibt, was ist das? – larsks