AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Rest Json Fehler 415 unsopported Media Type

Rest Json Fehler 415 unsopported Media Type

Ein Thema von josef-b · begonnen am 17. Jan 2022 · letzter Beitrag vom 17. Jan 2022
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.751 Beiträge
 
Delphi 12 Athens
 
#1

AW: Rest Json Fehler 415 unsopported Media Type

  Alt 17. Jan 2022, 15:42
Die Product ID gehört ja in die URL. Das gibt man bei AddParameter an:
Delphi-Quellcode:

Request.Addparameter('product_id', '7', TRESTRequestParameterKind.pkURLSEGMENT);
Für den Body solltest du ein passendes Objekt als JSON übergeben:
Delphi-Quellcode:
type
  { unvollständige Klasse ohne richtigen Support für GroupPrices und GraduatedPrices. Erweiterung als Übung :) }
  TUpdateProductPrices = class
  type
    TGroupPrice = class
    type
      TGraduatedPrice = class
        FGraduatedPrice: Double;
        FThreshold: Double;
      end;
    private
      FCustomerGroupId: Integer;
      FGraduatedPrices: TArray<TGraduatedPrice>;
      FGroupPrice: Double;
    end;
  private
    FGroupPrices: TArray<TGroupPrice>;
    FPrice: Double;
  public
    property Price: Double read FPrice write FPrice;
  end;

...

  instance := TUpdateProductPrices.Create;
  try
    instance.Price := 10;
    Request.AddBody<TUpdateProductPrices>(instance); // hier wird das JSON intern zusammengebaut
  finally
    instance.Free;
  end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Rest Json Fehler 415 unsopported Media Type

  Alt 17. Jan 2022, 16:57
Geht das mit addbody evtl. auch ohne Klassen zu erstellen?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.751 Beiträge
 
Delphi 12 Athens
 
#3

AW: Rest Json Fehler 415 unsopported Media Type

  Alt 17. Jan 2022, 17:42
Geht das mit addbody evtl. auch ohne Klassen zu erstellen?
Ja, wenn du das JSON bzw. JSONObject selbst zusammenbaust.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Rest Json Fehler 415 unsopported Media Type

  Alt 17. Jan 2022, 19:12
Danke für Eure Tips, ich stand echt im Wald

Ich habs dann jetzt so gemacht:

Delphi-Quellcode:

procedure TFRest.BtnSetPreisClick(Sender: TObject);
var obj : TJsonObject;
objGroupPrices : TJsonArray;
begin

Req.ResetToDefaults;
Req.Method := rmPUT;
Req.Resource := 'api.php/v2/product_prices/{product_id}';
EditResource.editvalue := req.Resource;

Req.Addparameter('product_id', '7', TRESTRequestParameterKind.pkURLSEGMENT);

Obj := TJSONObject.Create;
ObjGroupPrices := TJSonArray.Create;

obj.AddPair('groupPrices',objGroupPrices);
obj.Addpair('price' ,TJsonNumber.create(10));

memo1.clear;
memo1.Lines.Add(obj.toJson);

req.addbody(obj);

objGroupPrices.free;

Req.Execute;
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz