Doch anscheinend habe ich noch nicht ganz verstanden wie man die Übergabewerte korrekt übergibt.
Was schon geht:
- Einloggen (dank dir)
- Navigation zur Log Seite (z.B. https://www.geocaching.com/play/geocache/gc3m3wh/log)
Gemäß deines Beispiels beim Einloggen habe ich nun versucht den "Absenden" Button zu drücken.
Code: Alles auswählen
Request := TStringList.Create;
Request.Add(
// Hier jeweils die Namen der Objekte
'LogDate=' + EncodeURLElement('2017-09-18') + '&'
+ 'LogText=' + EncodeURLElement('Testlog, wird wieder gelöscht.') + '&'
+ 'LogTypeId=' + EncodeURLElement('4') + '&' // Todo : 4 entspricht "Write note", wenn ich das richtig verstanden habe
);
CopyStringsToStream(Request, fClient.Document);
fClient.MimeType := 'application/x-www-form-urlencoded';
fClient.Headers.Clear;
fClient.HTTPMethod('POST', 'https://www.geocaching.com/play/geocache/gc3m3wh/log/submitLog'); // Hinter die URL wird die ID des Buttons gehängt
rc := fClient.ResultCode;
(*
* Hier bekomme ich einen ResultCode 404
* Die Debug ausgabe ist leer
*)
CopyStreamToStrings(fClient.Document, form1.SynEdit1.Lines); // -- Debug
Request.free;
Und hier der meines Erachtens relevante Teil aus dem HTML-Source der Log Seite:
Code: Alles auswählen
<section class="region log-type-wrapper">
<div class="loading">
Lädt...
</div>
<h2 class="log-heading h6">Diesen Geocache loggen</h2>
<div class="log-types">
<select class="log-type" name="LogTypeId">
<option value="4">Anmerkung hinterlassen</option>
<option value="3">Nicht gefunden</option>
</select>
</div>
</section>
<section id="coordinateInput"></section>
<section class="region log-content-wrapper upload-panel">
<div id="logContent">
<div class="flatpickr-wrapper">
<label class="visually-hidden" for="LogDate">Select a date</label>
<input class="log-date" data-alt-input="true" data-val="true" data-val-date="The field LogDate must be a date." data-val-required="Bitte wähle ein Logdatum." id="LogDate" name="LogDate" type="date" value="2017-09-18" />
<svg class="icon" height="16" width="16">
<use xlink:href="/play/Content/ui-icons/sprites/global.svg#icon-caret-down-currentcolor"></use>
</svg>
</div>
<div id="reportProblemInfo" class="banner-problem"></div>
<label class="visually-hidden" for="LogText">Hinterlasse einen Kommentar</label>
<textarea class="decorated log-text" cols="20" data-val="true" data-val-maxlength="Kommentare können nicht länger als LogText Zeichen sein." data-val-maxlength-max="4000" data-val-required="Bitte hinterlasse einen Kommentar." id="LogText" name="LogText" rows="4">
</textarea>
<div class="upload-preview"></div>
<div class="file-error field-validation-error"></div>
<span class="character-counter"></span>
<div class="error-summary"></div>
<div id="logAttachments" class="btn-group">
</div>
</div>
</section>
<section class="region trackables-wrapper" id="trackablesPanel"></section>
<section class="region">
<div id="submitLog" class="submit-wrapper">
<button type="submit" class="btn btn-primary btn-submit">
Absenden
</button>
<div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display:none"></li>
</ul></div>
</div>
</section>