[C#] HttpRequest om incident aan te maken in Topdesk

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Joshuatree
  • Registratie: November 2002
  • Laatst online: 13-09 16:41
Probleem aanmaken Topdesk incident via C# applicatie.

Ik heb het probleem dat ik niet kan controleren of een incident dat ik
via een HttpRequest aanmaak in Topdesk op de juiste manier is aangemaakt.

De code die ik gebruik is:

string postThis = @"replacefield0=afhandelingstatusid&searchfield0=naam&searchvalue0=Geaccepteerd&replacefield1=aanmeldervestigingid&searchfield1=naam&searchvalue1=KLANT&replacefield2=vrijeopzoek1&searchfield2=naam&searchvalue2=Up&replacefield3=configuratieobjectid&searchfield3=ref_naam&searchvalue3=SBRU445981&field0=vrijetekst1&value0=Mw.%20R.%20XxxxX&field1=aanmeldernaam&value1=Mw.%20R.%20YyyyyY&field2=vrijetekst3&value2=1655729%2FI090700119&field3=vrijetekst4&value3=2704340&field4=vrijetekst5&value4=Intake&field5=verzoek&value5=zie%20phone-log&field6=soortbinnenkomstid&value6=Bt0001&field7=incident_domeinid&value7=3o0001&field8=incident_specid&value8=3o000C&field9=actie&value9=06-123456789&field10=vrijetekst2&value10=06-123456789";

//User gegevens NOT okay
String httpRequestThis = @"http://10.XX.XX.XX:81/tas/secure/incident?action=new&status=1&j_username=fout&j_password=fout&validate=false&save=true";

//User gegevens okay
//String httpRequestThis = @"http://10.XX.XX.XX:81/tas/secure/incident?action=new&status=1&j_username=goed&j_password=goed&validate=false&save=true";


Uri uriThis = new Uri(httpRequestThis);

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uriThis);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postThis.Length;

StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
stOut.Write(postThis);
stOut.Close();


try {
using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) {
int code = (int)response.StatusCode;
response.Close();

}
}
catch (System.Exception error) {
Console.WriteLine(error);
}


Als ik voor httpRequestThis de juiste gegevens gebruik springt de code naar de error afhandeling.
De melding is wel aangemaakt in Topdesk

Als ik voor httpRequestThis onjuiste gevens gebruik krijg ik een int code terug van 200 (oftwel OK)??
De melding is niet aangemaakt.


Ik heb niet zoveel ervaring met HttpRequest en Reponse dus misschien doe ik wel iets in de basis fout???

Ik hoop dat iemand mij misschien wat tips kan geven....

Alvast bedankt.

Jos

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ten eerste stellen we het op prijs als je code in de daarvoor bedoelde tags zou zetten ( Hoe post je code? / Hoe gebruik je de code tag? )

Ten tweede zul je eerst moeten gaan debuggen ( Debuggen: Hoe doe ik dat? )

Een HttpRequest heeft immers ook een response, als je in die response kijkt zie je wat je terug krijgt, en misschien kun je daar een hint vinden.

Je zegt verder dat hij naar de fout-afhandeling springt. maar je geeft niet aan wat voor fout je krijgt.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

Waarom wil je een request aanmaken als je dat in Topdesk zelf kan doen? En wat is de bedoeling hiervan?
Moet het een webform worden ofzo?

Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Er zijn genoeg redenen om een call/incident/ticket op een andere manier te willen loggen dan via de applicatie zelf. Maar meestal biedt de applicatie wel een of andere API. Tenzij dit de API is lijkt me werken met de API beter en veiliger.

Acties:
  • 0 Henk 'm!

  • Joshuatree
  • Registratie: November 2002
  • Laatst online: 13-09 16:41
Bedankt voor jullie tijd al vast.

Sorry voor het niet zetten van de code binnen Tags...

Maar het debuggen is al gebeurt.
Als ik de HttpRequest doe met correcte inlog gegevens krijg ik een unauthorized error. Als ik een HttpRequest doe met de foute inlog gegevens krijg ik een een httpresponse OK..(geen error!)??

In het eerste geval is wel het incident in Topdesk opgeslagen.
In het tweede geval is er niets gebeurd.

Er is geen api.
Ook heb ik al met Topdesk contact gehad er is ook geen HttpResponse

Groet,
Jos

Acties:
  • 0 Henk 'm!

Verwijderd

Weet niet of dit al opgelost is maar ik zie dat je authenticatie gegevens in de http-request meegeeft: "j_username=goed&j_password=goed"

Dit is op zich prima, maar om beveiligingsredenen moet je in de instellingen van Topdesk wel eerst aanzetten dat dit toegestaan is. Standaard staat dit namelijk uit. Je vindt dit onder de 'inloginstellingen' geloof ik.

Succes

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Joshuatree schreef op zaterdag 18 juli 2009 @ 22:41:
Bedankt voor jullie tijd al vast.

Sorry voor het niet zetten van de code binnen Tags...

Maar het debuggen is al gebeurt.
Als ik de HttpRequest doe met correcte inlog gegevens krijg ik een unauthorized error. Als ik een HttpRequest doe met de foute inlog gegevens krijg ik een een httpresponse OK..(geen error!)??
Maar heb je bijvoorbeeld ook gekeken wat de resulterende pagina is? Debuggen houd niet op met een keer door de code lopen.
Er is geen api.
Ook heb ik al met Topdesk contact gehad er is ook geen HttpResponse
En wat gaf Topdesk aan? Wat bedoel je met er was geen HttpResponse? Als het niet aan je HttpRequest ligt dan zul je het toch met Topdesk uit moeten zoeken, er is dan blijkbaar iets in hun software pakket wat je niet goed aanspreekt, en zei zijn natuurlijk de aangewezen partij om je daar bij te helpen.
Groet,
Jos
Het is niet nodig om onder elke post te groeten, je username staat immers ook naast je post

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Joshuatree
  • Registratie: November 2002
  • Laatst online: 13-09 16:41
Om de username/password gegevens mee tegeven in de url is inderdaad onveilig maar het is de enige manier. Ik heb alles nu werkend maar niet zoals ik het zou willen.


Hier mag een slotje op dus. Aan opmerkingen zoals "Debuggen houd niet op met een keer door de code lopen." heb ik weinig want dan ga je er vanuit dat iemand niet weet wat debuggen is! Anders had ik wel gezegd dat ik al de code bekeken had.


"Het is niet nodig om onder elke post te groeten, je username staat immers ook naast je post"

Ik heet niet joshuatree!

Groet,
Jos

Acties:
  • 0 Henk 'm!

  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
Hier mag een slotje op dus. Aan opmerkingen zoals "Debuggen houd niet op met een keer door de code lopen." heb ik weinig want dan ga je er vanuit dat iemand niet weet wat debuggen is! Anders had ik wel gezegd dat ik al de code bekeken had.
Je hebt anders nog niet aangegeven of je een response krijgt.
HTTP is namelijk zo ontworpen dat er ALTIJD een response is, gaat dus toch ergens wat fout.

Groeten doen we op got niet, kan je op meerdere plekken in de regels / FAQ's vinden en is uberhaubt bijna een standaard aanwezige tip/regel in de etiquette van een forum.
HttpRequest doe met de foute inlog gegevens krijg ik een een httpresponse OK
En welke code hoort daarbij? 200?
Zoja dan hoor je daarna nog data binnen te krijgen, als je dit echter niet uitleest zal je nooit weten waarom het fout gaat.
using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) {
int code = (int)response.StatusCode;
response.Close
Wow, dus je vangt alleen de statuscode af en niet de gehele inhoud.
Hoe wou je dit in godsnaam gaan debuggen als je geen data opvangt?
Redelijke fail IMHO. (die toon heb je te danken aan je vorige post).

[ Voor 35% gewijzigd door Mental op 10-08-2009 15:12 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Topics gaan hier alleen op slot als ze niet aan de regels voldoen, niet als er een oplossing is, of de TS daar om vraagt. Misschien is er nog wel iemand anders die op het onderwerp door wil gaan.
Aan opmerkingen zoals "Debuggen houd niet op met een keer door de code lopen." heb ik weinig want dan ga je er vanuit dat iemand niet weet wat debuggen is! Anders had ik wel gezegd dat ik al de code bekeken had.
Jij hebt er misschien weinig aan, maar je geeft nergens antwoord op de vraag die ik stel! Jij kan misschien vinden dat je genoeg gedebugged hebt, maar zolang jij die informatie niet geeft ga ik er van uit dat je het niet gedaan hebt!
"Het is niet nodig om onder elke post te groeten, je username staat immers ook naast je post"

Ik heet niet joshuatree!

Groet,
Jos
Hier op het forum heet je Joshuatree, daar heb je voor gekozen op het moment dat je je registreerde ( en kan op verzoek eventueel gewijzigd worden ), het plaatsen van een groet onder elke post is alleen onzinnige verspilling van ruimte aangezien je daar ook al ruimte voor hebt in je signature of in je ondertitel.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Joshuatree
  • Registratie: November 2002
  • Laatst online: 13-09 16:41
Okay jullie hebben gelijk. Ik zal mij voortaan beter gedragen........

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Joshuatree schreef op maandag 10 augustus 2009 @ 15:06:
Om de username/password gegevens mee tegeven in de url is inderdaad onveilig maar het is de enige manier.
Absoluut niet. Je kunt prima een normale inlog doen en de cookie informatie die je terugkrijgt bij volgende requests gebruiken. Veel sites laten je uberhaupt niet via get requests inloggen, dus je zult die info moeten posten en dan met de cookie info die je terugkrijgt aan de slag moeten gaan.

https://niels.nu

Pagina: 1