C# WebRequest GET/POST
J'ai donc pensé qu'il est temps pour moi d'apprendre le C#, être facile avec moi les gars, je suis très nouveau à ce.
Je suis en train de créer une application très simple (je suis sur Application Windows Forms).
Mon but est:
- À l'aide de la méthode "GET", obtenir la page web
- Lire un champ de texte (cette valeur change à chaque fois que l'utilisateur accède à la page
- Utilisant la méthode de "POTEAU", d'envoyer quelques valeurs en conséquence
Voici mon code pour l'instant:
private void button2_Click(object sender, EventArgs e)
{
string URI = "http://localhost/post.php";
string myParameters = "field=value1&field2=value2";
using (WebClient wc = new WebClient())
{
string getpage = wc.DownloadString("http://localhost/post.php");
MessageBox.Show(getpage);
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string HtmlResult = wc.UploadString(URI, myParameters);
MessageBox.Show(HtmlResult);
}
}
C'est très bien, Ça fonctionne, mais il n'est pas entièrement ce que je veux réaliser ici.
Je suis en mesure d'utiliser la méthode POST, mais je fais comment OBTENIR avant d'envoyer les données?
Je veux envoyer des données conformément à OBTENIR de résultat.
S'il vous plaît laissez-moi savoir si je devrais donner une meilleure description de ce que je suis en train de faire.
Grâce.
Modifier
C'est mon Code PHP:
<?php
$a = session_id();
if(empty($a))
session_start();
echo "Session: ".session_id()."<br/>\n";
Maintenant, retour à mon code C#, je reçois différent de l'ID de session dans les deux messages
OriginalL'auteur user3800799 | 2014-10-10
Vous devez vous connecter pour publier un commentaire.
De la lecture des données avec
Sessions
Par défaut WebClient ne pas utiliser n'importe quelle Session. Ainsi, chaque appel est traité comme si vous avez créé une nouvelle Session. De faire que vous avez besoin de quelque chose comme ceci:
Exemple de code
Je me demande si cela va fonctionner.. parce qu'ils ont besoin de se produire au cours de la même session. Edit: pseudocoder, exactement mon but ici.
Salut les gars, je suis toujours pas capable de comprendre ça. Il compte toujours comme une autre session. Peut-être la meilleure comparaison serait notre navigateur (Chrome par exemple). Vous ouvrez une page, puis de soumettre le formulaire qui est à l'intérieur d'elle. sans actualisation ou quoi que ce soit
Avez-vous lu mon deuxième lien sur les sessions? Vous devez configurer le client pour utiliser un CookieContainer gérer les sessions.
Pour utiliser les sessions que vous avez à utiliser des cookies. Lorsque vous accéder à une url, une session est créée. Le SessionId est fourni comme un cookie. Votre client a besoin pour sauver ce témoin et l'envoyer à la prochaine fois, afin que votre session peut être reprise. Si vous utilisez le Client dans mon 2ème lien vos demandes doivent travailler avec les cookies, et donc de reprendre votre session.
OriginalL'auteur Tuan
La
GET
méthode est vraiment rien, mais les paramètres transmis par le biais de la ligne d'adresse, il suffit d'envoyer votre demande àstring.Format("{0}?{1}", URI, myParameters)
(ouURI + "?" + myParameters
) et il suffit de lire la réponse.J'imagine que cela dépendra de votre
PHP
script. La j'ai compris de votre question, c'est que vous voulez envoyer les données de la page à l'aide d'une combinaison deGET
etPOST
méthodes. Si c'est le cas, je ne vois pas pourquoi ce ne serait pas dans la même session. Mais si vous voulez envoyer quelque chose parGET
, puis, sur la base de la réponse à partir de la page d'artisanat, une autre demande à l'aide dePOST
, je crois que ce serait une demande distincte. Si par session vous dire de session dans le même sens que dans le navigateur, il y a un moyen de le gérer (les cookies et ce n'est pas), mais si ne me souviens pas de hors dessus de ma tête...J'ai édité mon poste principal de vérifier si vous pouvez deviner où est le problème
OriginalL'auteur nurchi
Je sais que ses un il ya longtemps, mais :
}
OriginalL'auteur Fai